TTYSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
TTYSER page# 0002 next prev
94: BEGIN TTYSER - SCANNER, KEYBOARD AND CONSOLE TELETYPE SERVICE ROUTINE
95: SUBTTL TTYSER - -DEC MOD D. POOLE MOD R. HELLIWELL
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
TTYSER page# 0003 next prev
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168: XP BUF,0
169: XP ↑PUTR,1
170: XP PCTR,2
171: XP ↑TAKR,3
172: XP TCTR,4
173: XP ↑FCTR,5
174: XP TSYNC,6
175:
176:
177:
178:
179:
180:
181:
TTYSER page# 0004 next prev
183:
184:
185:
186: ↑USRB←←100
187:
188:
189: ↑TPMON←←400
190:
191: DDTM←←1000
192: ↑↑TTYDTC←←2000
193: ↑TOIP←←10000
194:
195: SYNC←←20000
196:
197:
198: IMLTTY←←40000
199: TTYHLD←←100000
200: SNKWAT←←200000
201: TTYIOW←←400000
202:
203:
204: IOSUPR←←1000
205: BKSP←←100
206:
207:
208: NOECHO←←200
209: NOECHB←←400
210: MERTP1←←2000
211:
212: MERTPO←←IOIMPM
213:
214:
215:
216:
217:
218:
219:
220:
221:
222: IFNDEF FTDDTM,<FTDDTM←←-1>
TTYSER page# 0005 next prev
224:
225:
226:
227:
228:
229:
230: ↑DISLIN←←400000
231: ↑CTYLIN←←200000
232: TTYFIL←←100000
233: ↑DDDLIN←←20000
234: M37←←10000
235: ↑PTYLIN←←4000
236: IMLIN←←2000
237:
238: APLINE←←12
239: IMSSS←←7
240:
241:
242:
243: ↑TLKRNG←←1
244: XON←←2
245: FULTWX←←4
246: TBXPND←←10
247: FCS←←20
248: ROBTPD←←40
249: SPCBRK←←100
250: PTYUSE←←200
251: PTYWAK←←400
252: ↑IMPBIT←←1000
253: LERSEE←←40000
254:
255:
256:
257:
258:
259:
260:
261: LGLSET←←TBXPND!TTYFIL!FCS!XON!SPCBRK!PTYWAK!IMPBIT!FULTWX!LERSEE
262: KILMSK←←ROBTPD!TLKRNG!XON!SPCBRK!PTYLIN!PTYWAK!IMPBIT!LERSEE
263:
264:
265:
266:
267: GLOBAL TTPLEN
268: MTTYLN←←-TTPLEN
269: ↑TCONLN←←SCNNUM+DPYNUM+DDNUM
270: ↑PTYL0←←TCONLN+1
271: ↑DPYL0←←SCNNUM
272: ↑DDL0←←DPYL0+DPYNUM
273: FSNCHN←←SCNCHN*101
274:
TTYSER page# 0006 next prev
276:
277:
278:
279: CHR←TEM
280: LINE←TAC1
281: HPOS←ITEM
282:
283:
284:
285:
286: SCNON←←1B25!1⊗(7-SCNCHN)
287: SCNOFF←←1B26!1⊗(7-SCNCHN)
288:
289: IDLECH←←1
290:
291:
292:
293:
294:
295: PFITCH: POINT 9,DEVOAD(DDB),8
296: PHPOS: POINT 7,DEVIAD(DDB),12
297:
298: IFN FTTALK,<
299: ↑PTALK: POINT PUNITS,TTYTAB(LINE),17
300:
301: >
302:
303:
304: ↑PLASTC:
305: POINT 7,TTYPTR(DDB),35
306: ↑PCOMIC:
307: POINT 9,TTYPTR(DDB),19
308:
309: PLSTLC: POINT 9,TTYPTR(DDB),28
310:
311:
312:
313:
314:
315:
316:
317:
318:
319: ↑CTLV1: PUSHJ P,TTYFNU
320: MOVEI IOS,NOECHO
321: XORM IOS,DEVIOS(DDB)
322: POPJ P,
TTYSER page# 0007 next prev
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334: DEFINE BITS(X),<XWD X,.-LINBIT>
335:
336: LINBIT:
337: REPEAT 10,<BITS TBXPND!FCS
338: >
339: REPEAT 2,<BITS TBXPND!FCS
340: >
341: REPEAT 3,<BITS TBXPND!M37!FCS
342: >
343: REPEAT 3,<BITS IMLIN!FCS
344: >
345: REPEAT DPYNUM,<BITS DISLIN!FCS
346: >
347: REPEAT DDNUM,<BITS DDDLIN!FCS>
348: BITS CTYLIN
349: REPEAT PTYNUM,<BITS 0>
350:
351:
352: ↑TTYINI:
353: PUSHJ P,DWPINI
354:
355: IFN DILNUM,<PUSHJ P,DILINI>
356: MOVSI LINE,-TCONLN-1
357: SCN0: MOVE TAC,LINBIT(LINE)
358: HRRM TAC,LINTAB(LINE)
359: IORB TAC,LINTAB(LINE)
360: TLZ TAC,KILMSK
361: HLLM TAC,LINTAB(LINE)
362: AOBJN LINE,SCN0
363:
364: CONO CTY,3600!CTYCHN
365: CONO DKB,10!SCNCHN
366: PUSHJ P,SCNINI
367: SETZM TTYTAB
368: SETZM COMCNT
369: MOVE TAC,[XWD TTYTAB,TTYTAB+1]
370: BLT TAC,TTYTAB+TTPLEN-1
371: MOVE TAC,[TCONLN,,TTYLST]
372: MOVEM TAC,TTYTAB+TCONLN
373: SETZM PAGNOW
374: SETZM ASBTAB
375: MOVE TAC,[ASBTAB,,ASBTAB+1]
376: BLT TAC,ASBTAB+DPYNUM+DDNUM-1
377: SKIPL TTYLOK
378: SKIPE MAINTM
379: JRST NOASIN
380: SETZM ASTAB
381: MOVE TAC,[ASTAB,,ASTAB+1]
382: BLT TAC,ASTAB+DPYNUM+DDNUM-1
383: NOASIN: HRRZS TTYLST+DEVSER
384: SETZB IOS,TTYLST+DEVIOS
385:
386:
387: MOVEI ITEM,JOBN-1
388: SCNC1: MOVE TAC,JBTSTS(ITEM)
389: TLNN TAC,JNA
390: JRST SCNC3
391: HRRE LINE,JBTLIN(ITEM)
392: JUMPL LINE,SCNC2
393: PUSHJ P,DDBSRC
394: JRST SCNC3
395: PUSHJ P,TTYATI
396: TLNE LINE,PTYLIN
397: SKIPE PTYJOB-PTYL0(LINE)
398: JRST SCNC3
399: PUSHJ P,TTYDET
400: JRST SCNC3
401: SCNC2: TLNE TAC,JSEG
402: JRST SCNC3
403: MOVNI LINE,1
404: PUSHJ P,DDBSRC
405: JRST SCNC3
406: DPB ITEM,PJOBN
407: SCNC3: SOJG ITEM,SCNC1
TTYSER page# 0008 next prev
409:
410:
411:
412:
413: MOVSI LINE,-TTPLEN+PTYNUM
414: SCN2: MOVSI IOS,600000
415: ANDCAM IOS,TTYTAB(LINE)
416: HRRZ TAC,LINE
417: CAIGE TAC,PTYL0
418: JRST NOTPTY
419: SKIPN TTYTAB(LINE)
420: JRST SCN6
421: HRLI TAC,PTYLIN!PTYUSE!XON
422: MOVEM TAC,LINTAB(LINE)
423: JRST SCN3
424: SCN6: SETZM PTYJOB-PTYL0(LINE)
425: SETZM LINTAB(LINE)
426: JRST SCN3
427: NOTPTY: SKIPE TTYTAB(LINE)
428: JRST SCN3
429: SKIPE TTYLOK
430: CAIN TAC,TCONLN
431: CAIA
432: JRST SCN3
433: PUSH P,LINE
434: HRRZ LINE,LINE
435: CAIL LINE,DPYL0
436: CAIL LINE,DDL0+DDNUM
437: CAIA
438: JRST SCN5
439: CAIE LINE,IMSSS
440: CAIN LINE,APLINE
441: JRST .+3
442: PUSHJ P,DDBSRC
443: JFCL
444: POP P,LINE
445: SCN3: AOBJN LINE,SCN2
446: SETZM LINSAV
447: POPJ P,
448:
449: SCN5: POP P,LINE
450: JRST SCN3
451:
452:
453:
454:
455:
456: SCNINI: MOVEI TAC,100000
457: CONO DCSA,4010
458: CONSZ DCSA, 1000
459: CONO DCSA, 4000
460: CONSZ DCSA, 10
461: DATAI DCSB, LINE
462: SOJG TAC,.-4
463: CONO DCSA,FSNCHN
464: POPJ P,
TTYSER page# 0009 next prev
466:
467:
468:
469:
470:
471:
472:
473:
474:
475: ↑TTYCOM:
476: SKIPGE LINE,LINSAV
477: JRST TTYCM1
478: MOVSI LINE,MTTYLN
479: SKIPL TAC,TTYTAB(LINE)
480: TTYCM1: AOBJN LINE,.-1
481: MOVEM LINE,LINSAV
482: JUMPG LINE,CPOPJ
483: HRRZ DDB,TTYTAB(LINE)
484: JUMPE DDB,TTYCM2
485: MOVE DAT,DEVMOD(DDB)
486: TLNN DAT,TTYATC
487: TRNN DAT,ASSCON!ASSPRG
488: JRST .+2
489: JRST TTYCM2
490: MOVEI DAT,TTIBUF(DDB)
491: MOVE LINE,TITCTR(DDB)
492: DPB LINE,PCOMIC
493: LDB LINE,PUNIT
494: LDB J,PJOBN
495: MOVSI CHR,TTYATC
496: TDNN CHR,DEVMOD(DDB)
497: MOVEI J,0
498: TLNN TAC,DLYBIT
499: JRST CPOPJ1
500: MOVSI TAC,DLYBIT
501: ANDCAM TAC,TTYTAB(LINE)
502: JRST CPOPJ1
503:
504: ↑TTYCM: MOVE LINE,LINSAV
505: MOVSI DDB,DLYBIT
506: IORB DDB,TTYTAB(LINE)
507: PUSHJ P,TRESCN
508: MOVE LINE,LINSAV
509: JRST TTYCM1
510:
511: TTYCM2: PUSHACS
512: PUSH P,DDB
513: PUSH P,LINE
514: PUSHJ P,DISMES
515: ASCIZ /COMMAND BIT SET AND NO DDB, OR TTY ASSIGNED: TTY /
516: POP P,TAC
517: PUSHJ P,DISLOC
518: PUSHJ P,DISMES
519: ASCIZ /, DDB= /
520: POP P,TAC
521: PUSHJ P,DISLOC
522: PUSHJ P,DISCRLF
523: POPACS
524: MOVSI DDB,COMBIT!DLYBIT
525: SOS COMCNT
526: ANDCAM DDB,TTYTAB(LINE)
527: IFN FTTTYBUG,<
528: PUSHJ P,COMBCK
529: PUSHJ P,CNTCOM
530: >
531: JRST TTYCM1
532:
533: IFN FTTTYBUG,<
534:
535:
536:
537:
538: ↑CNTCOM:
539: PUSH P,TAC
540: PUSH P,TAC1
541: CONI PI,TAC1
542: ANDI TAC1,SCNOFF-1000
543: PUSH P,TAC1
544: CONO PI,SCNOFF
545: MOVEI TAC1,0
546: MOVSI TAC,MTTYLN
547: SKIPGE TTYTAB(TAC)
548: ADDI TAC1,1
549: AOBJN TAC,.-2
550: CAMN TAC1,COMCNT
551: JRST CNTCM1
552: PUSHACS
553: PUSHJ P,DISMES
554: ASCIZ /COMCNT & TTYTAB DISAGREE. CALLER = /
555: MOVE TAC,-23(P)
556: PUSHJ P,DISLOC
557: PUSHJ P,DISMES
558: ASCIZ / COMCNT= /
559: MOVE TAC,COMCNT
560: PUSHJ P,DISLOC
561: PUSHJ P,DISTAB
562: MOVE TAC,TAC1-17(P)
563: PUSHJ P,DISLOC
564: PUSHJ P,DISCRLF
565: MOVE TAC,TTCBCK
566: PUSHJ P,DISOCT
567: PUSHJ P,DISTAB
568: MOVE TAC,TTCBCK+1
569: PUSHJ P,DISOCT
570: PUSHJ P,DISTAB
571: MOVE TAC,TTCBCK+2
572: PUSHJ P,DISOCT
573: PUSHJ P,DISCRLF
574: ↑COMBUG: JRST .+3
575: PUSHJ P,DISFLUSH
576: PUSHJ P,DDTCALL
577: POPACS
578: MOVEM TAC1,COMCNT
579: CNTCM1: POP P,TAC1
580: CONO PI,2000(TAC1)
581: POP P,TAC1
582: POP P,TAC
583: POPJ P,
584:
585:
586: ↑COMBCK: PUSH P,IOS
587: PUSH P,TAC
588: MOVE TAC,-2(P)
589: MOVE IOS,-2(TAC)
590: POP P,TAC
591: HRRI IOS,@IOS
592: TLZ IOS,37
593: PUSH P,IOS
594: LDB IOS,[270400,,IOS]
595: SKIPN IOS
596: SKIPA IOS,-1(P)
597: MOVE IOS,@IOS
598: JUMPGE IOS,[ POP P,IOS
599: POP P,IOS
600: POPJ P,]
601: POP P,IOS
602: PUSH P,TAC
603: PUSH P,TAC1
604: PUSH P,AC1
605: TLNN IOS,020000
606: TLZ IOS,400000
607: HRRZ TAC,IOS
608: SUBI TAC,TTYTAB
609: JUMPL TAC,COMBCX
610: CAIL TAC,TTPLEN
611: JRST COMBCX
612: IDIVI TAC,=36
613: MOVEI AC1,1
614: LSH AC1,(TAC1)
615: SKIPL IOS
616: ANDCAM AC1,TTCBCK(TAC)
617: SKIPGE IOS
618: IORM AC1,TTCBCK(TAC)
619: COMBCY: POP P,AC1
620: POP P,TAC1
621: POP P,TAC
622: POP P,IOS
623: POPJ P,
624: COMBCX: PUSHACS
625: PUSHJ P,DISMES
626: ASCIZ /AT COMBCK WITH INVALID INDEX = /
627: MOVE TAC,TAC-17(P)
628: PUSHJ P,DISLOC
629: PUSHJ P,DISCRLF
630: JRST COMBCY
631: >
TTYSER page# 0010 next prev
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648: IFE FTATTACH,<
649: ↑TTYATT:
650: >
651:
652: ↑TTYATI:
653: PUSHJ P,STLNAC
654: MOVEM LINE,JBTLIN(ITEM)
655: DPB ITEM,PJOBN
656: MOVSI TAC,TTYATC
657: IORM TAC,DEVMOD(DDB)
658: MOVSI IOS,TTYDTC
659: ANDCAB IOS,DEVIOS(DDB)
660: POPJ P,
661:
662:
663: ↑TTYSUB:HRRZS (P)
664: TTYSB1: PUSHJ P,CTEXT1
665: JUMPE TAC1,[CAIE TEM,"-"
666: JRST NOTENF
667: PUSHJ P,GETLCCHR
668: HRROS (P)
669: JRST TTYSB1]
670: CAMN TAC1,['NO ']
671: JRST [ HRROS (P)
672: JRST TTYSB1]
673: MOVSI TAC,-TCOMLN
674: TCOMLP: CAMLE TAC1,TCOMND(TAC)
675: AOBJN TAC,.-1
676: JUMPGE TAC,COMERA
677: CAMN TAC1,TCOMND(TAC)
678: JRST TCMGOT
679: MOVE AC2,TAC1
680: SKIPA AC1,[770000,,0]
681: TCMMSK: ASH AC1,-6
682: ANDCM AC2,AC1
683: JUMPN AC2,TCMMSK
684: MOVE AC2,TCOMND(TAC)
685: AND AC2,AC1
686: CAME AC2,TAC1
687: JRST COMERA
688: HLRE AC2,TAC
689: AOJE AC2,TCMGOT
690: AND AC1,TCOMND+1(TAC)
691: CAMN AC1,TAC1
692: JRST COMERA
693: TCMGOT: PUSHJ P,STLNAC
694: JRST @TCOMDS(TAC)
TTYSER page# 0011 next prev
696:
697:
698: DEFINE TNAMES
699: <
700: .TMAC ECHO,TTECHO
701: .TMAC FILL,FILTTY
702: .TMAC FULL,TTFULL
703: .TMAC TABS,TTTAB
704: .TMAC TIME,TTYTIM
705: .TMAC UPDATE,TTYUPD
706: .TMAC WHO,TTYWHO
707: >
708:
709: DEFINE .TMAC(A,B)
710: < SIXBIT/A/
711: >
712:
713: XLIST
714: TCOMND: TNAMES
715: TCOMLN←←.-TCOMND
716: LIST
717:
718: DEFINE .TMAC(A,B)
719: < B
720: >
721:
722: XLIST
723: TCOMDS: TNAMES
724: LIST
TTYSER page# 0012 next prev
726:
727: FILTTY: TLNE LINE,DISLIN!DDDLIN
728: POPJ P,
729: SKIPGE (P)
730: TLZA LINE,TTYFIL
731: TLO LINE,TTYFIL
732: STOLIN: HLLM LINE,LINTAB(LINE)
733: POPJ P,
734:
735: TTECHO: SKIPGE (P)
736: TLOA LINE,FULTWX
737: TLZ LINE,FULTWX
738: JRST STOLIN
739:
740: TTFULL: SKIPGE (P)
741: TLZA LINE,FCS
742: TLO LINE,FCS
743: JRST STOLIN
744:
745: TTTAB: SKIPGE (P)
746: TLOA LINE,TBXPND
747: TLZ LINE,TBXPND
748: JRST STOLIN
749:
750: TTYUPD: JUMPE J,CPOPJ
751: MOVSI TAC,400000
752: SKIPGE TAC1,(P)
753: ORM TAC,XTIME(J)
754: JUMPL TAC1,.+2
755: ANDCAM TAC,XTIME(J)
756: POPJ P,
757:
758: TTYTIM: JUMPE J,CPOPJ
759: MOVSI TAC,400000
760: SKIPL TAC1,(P)
761: ADD TAC,TTIME(J)
762: MOVEM TAC,XTIME(J)
763: HRRZS DSKOPS(J)
764: SETZ TAC,
765: JUMPL TAC1,TTYTI1
766: HRLS DSKOPS(J)
767: SKIPGE TAC,JBTWAT(J)
768: ADD TAC,UPTIME
769: TTYTI1: MOVEM TAC,JB2WAT(J)
770: POPJ P,
771:
772: TTYWHO: SKIPL (P)
773: JRST UWHO
774: TTWHSY: MOVEI AC3,COMWHO+2
775: JRST UWHO1
776:
777: UWHO: PUSHJ P,DECIN
778: SKIPA TAC1,J
779: JRST COMERA
780: JUMPE TAC1,TTWHSY
781: CAIL TAC1,JOBN
782: JRST NOTLOG
783: MOVE TAC,JBTSTS(TAC1)
784: TLNN TAC,JNA
785: JRST NOTLOG
786: PUSH P,J
787: PUSH P,DDB
788: MOVE J,TAC1
789: MOVEI AC1,TITLE ;USE WHO LINE MODEL
790: SETZ DDB,
791: PUSHJ P,WHOLIN
792: POP P,DDB
793: POP P,J
794: MOVEI AC3,WTTYS
795: UWHO1: SKIPN AC2,(AC3)
796: POPJ P,
797: TRZN AC2,1
798: AOJA AC3,UWHO1
799: MOVE AC1,[POINT 7,AC2]
800: UWHO2: TLNN AC1,760000
801: AOJA AC3,UWHO1
802: ILDB TEM,AC1
803: JUMPE TEM,UWHO2
804: PUSH P,AC1
805: PUSH P,AC2
806: PUSH P,AC3
807: XCT TYO
808: POP P,AC3
809: POP P,AC2
810: POP P,AC1
811: JRST UWHO2
812:
813: ↑WHOUUO:XCTR XR,[HRRZ UUO,(UCHN)]
814: HRLI UUO,(<POINT 7,0>)
815: MOVEI AC3,COMWHO+2
816: XCTR XR,[HLRE TAC,(UCHN)]
817: JUMPL TAC,WHOUU1
818: JUMPE TAC,.+2
819: CAIL TAC,JOBN
820: MOVE TAC,J
821: MOVE TAC1,JBTSTS(J)
822: TLNN TAC1,JNA
823: JRST WHOUU2
824: PUSH P,J
825: MOVE J,TAC
826: MOVEI AC1,TITLE ;USE PROTOTYPE
827: SETZ DDB,
828: PUSHJ P,WHOLIN
829: POP P,J
830: MOVEI AC3,WTTYS
831: WHOUU1: SKIPN AC2,(AC3)
832: JRST WHOUU2
833: TRZN AC2,1
834: AOJA AC3,WHOUU1
835: MOVE AC1,[POINT 7,AC2]
836: WHOUU0: TLNN AC1,760000
837: AOJA AC3,WHOUU1
838: ILDB TEM,AC1
839: JUMPE TEM,WHOUU0
840: XCTR XLB,[IDPB TEM,UUO]
841: JRST WHOUU0
842:
843: WHOUU2: SETZ TEM,
844: WHOUU3: XCTR XLB,[IDPB TEM,UUO]
845: TLNE UUO,760000
846: JRST WHOUU3
847: POPJ P,
TTYSER page# 0013 next prev
849:
850:
851:
852: IFN FTATTACH,<
853: ↑TTYATT:
854: PUSHJ P,STLNAC
855: MOVEI DDB,TTYLST
856: JRST .+2
857: TTYAT2: HLRZ DDB,DEVSER(DDB)
858: JUMPE DDB,CPOPJ
859: LDB TAC,PJOBN
860: HLL TAC,DEVMOD(DDB)
861: TLNN TAC,DVTTY
862: JRST TTYAT2
863: MOVE IOS,DEVIOS(DDB)
864: CAIN ITEM,(TAC)
865: TLNN TAC,TTYATC
866: JRST TTYAT2
867: TLNN IOS,TTYDTC
868: POPJ P,
869: PUSH P,DDB
870: MOVE DDB,TTYTAB(LINE)
871: LDB TAC,PJOBN
872: JUMPN TAC,TTYAT3
873: MOVSI TAC,IO!TOIP
874: ANDCAM TAC,DEVIOS(DDB)
875: TTYAT3: PUSHJ P,TTYDET
876: POP P,DDB
877: MOVEM DDB,TTYTAB(LINE)
878: IFN FTTTYBUG,< PUSHJ P,CNTCOM >
879: DPB LINE,PUNIT
880: PUSHJ P,TTYATI
881:
882:
883: PUSH P,ITEM
884: PUSHJ P,XMTIN1
885: POP P,ITEM
886: SETZ TAC,
887: JRST SCNIN
888: >
TTYSER page# 0014 next prev
890:
891: IFN FTATTACH,<
892:
893:
894:
895:
896:
897:
898:
899:
900:
901: ↑TTYDET:LDB TAC,PJOBN
902: SETOM JBTLIN(TAC)
903: MOVSI IOS,TTYDTC
904: MOVE TAC,DEVMOD(DDB)
905: TLNE TAC,TTYATC
906: TDNE IOS,DEVIOS(DDB)
907: JRST TTYKIL
908: IORB IOS,DEVIOS(DDB)
909: CONO PI,SCNOFF
910: PUSHJ P,TTYSKL
911: CONO PI,SCNON
912: JRST TTYKL1
913: >
914:
915:
916:
917: ↑TRESCN:
918: LDB TAC,PCOMIC
919: TRESC2:
920: MOVEM TAC,TITCTR(DDB)
921: PUSHJ P,TBYTEP
922: MOVEM TAC,TITAKR(DDB)
923: TRESC1: MOVE TAC,TIPCTR(DDB)
924: CONO PI,SCNOFF
925: SUB TAC,TITCTR(DDB)
926: SKIPG TAC
927: ADDI TAC,TTICHR
928: MOVEM TAC,TIFCTR(DDB)
929: CONO PI,SCNON
930: JRST STLNAC
931:
932:
933:
934:
935: ↑TRESCU:TLNE IOS,TPMON
936: POPJ P,
937: TRNN UUO,-1
938: JRST TRESCA
939: LDB TAC,PCOMIC
940: SUB TAC,TITCTR(DDB)
941: SKIPG TAC
942: ADDI TAC,TTICHR
943: XCTR XW,[MOVEM TAC,(UUO)]
944: TRESCA: PUSHJ P,TRESCN
945: JRST SYNCHK
TTYSER page# 0015 next prev
947:
948:
949:
950:
951: XWD 441100,0
952: TLHBYT: XWD 331100,0
953: XWD 221100,0
954: XWD 111100,0
955: XWD 001100,0
956:
957: TBYTEP: PUSH P,LINE
958: MOVNS TAC
959: ADDI TAC,TTICHR
960: IDIVI TAC,4
961: ADD TAC,TTIBUF(DDB)
962: HLL TAC,TLHBYT(LINE)
963: POP P,LINE
964: AOJA TAC,CPOPJ
TTYSER page# 0016 next prev
966:
967:
968:
969:
970:
971:
972:
973: TTYGET:
974:
975: ↑TTYFNU:
976: MOVE ITEM,JOB(PID)
977: ↑TTYFND:
978: PUSHJ P,TTYSRC
979: TTYDAT: MOVEI DAT,TTOBUF(DDB)
980: POPJ P,
981:
982:
983:
984:
985:
986: ↑TTYFUW:
987: JUMPE PID,TTYFU1
988: PUSHACS
989: CONSO APR,MAOFF
990: JRST TTYFU2
991: PUSHJ P,DISMES
992: ASCIZ /ππPID CLOBBERED AT TTYFUW
993: /
994: POPACS
995: SETZ PID,
996: JRST TTYFU1
997: TTYFU2: PUSHJ P,DISMES
998: ASCIZ /ππPDP-6 AT TTYFUW
999: /
1000: POPACS
1001: POPJ P,
1002:
1003: TTYFU1: PUSHJ P,TTYFNU
1004: LDB TAC,PJOBN
1005: CAME TAC,JOB
1006: POPJ P,
1007: MOVE TAC,TOPUTR(DDB)
1008: CAMN TAC,TOTAKR(DDB)
1009: POPJ P,
1010: MOVEI IOS,IOACT
1011: IORB IOS,DEVIOS(DDB)
1012: JRST WSYNC
1013:
1014:
1015:
1016:
1017: ↑TTYERP:
1018: PUSHJ P,TTYERR
1019: JRST SETBFI
1020: ↑TTYERR:
1021:
1022: PUSHJ P,TTYSRC
1023: MOVEI IOS,MERTPO
1024: IORB IOS,DEVIOS(DDB)
1025: TLNE IOS,TTYDTC
1026: POPJ P,
1027: PUSHJ P,STLNAC
1028: TLNN LINE,DISLIN!DDDLIN
1029: POPJ P,
1030: PUSHACS
1031: HRRZ DDB,LETAB-DPYL0(LINE)
1032: JUMPE DDB,TTYDX1
1033: HLRZ DAT,PPCALL(DDB)
1034: TLNE LINE,DDDLIN
1035: TLO DDB,400000
1036: HLL DAT,DDB
1037: PUSHJ P,PPCLR
1038: TTYDX1: POPACS
1039: POPJ P,
TTYSER page# 0017 next prev
1041:
1042:
1043:
1044:
1045:
1046:
1047:
1048:
1049:
1050: ↑TTYSET:
1051: MOVE IOS,[XWD DDTM+USRB+TTYIOW+IOW,IOSUPR]
1052: ANDCAB IOS,DEVIOS(DDB)
1053: POPJ P,0
1054:
1055:
1056:
1057: ↑TTYSTC:
1058: MOVSI TAC,USRB
1059: ANDCAM TAC,DEVIOS(DDB)
1060: JRST TTYSTR
TTYSER page# 0018 next prev
1062:
1063:
1064:
1065:
1066:
1067:
1068:
1069:
1070:
1071:
1072: ↑TTYSTR:
1073: MOVE IOS,[XWD DDTM!IOBEG!IO!TPMON,IOSUPR!IOBKTL!IOACT]
1074: ANDCAB IOS,DEVIOS(DDB)
1075: TLNE IOS,TTYDTC
1076: POPJ P,
1077: PUSHJ P,STLNAC
1078: MOVSI TAC,IO!TPMON
1079: TLNE IOS,USRB
1080: TLZ TAC,TPMON
1081: IORM TAC,DEVIOS(DDB)
1082: MOVSI TAC,USRB+TPMON
1083: TLNE IOS,USRB
1084: ANDCAM TAC,DEVIOS(DDB)
1085: MOVE IOS,DEVIOS(DDB)
1086: SKIPLE TISYNC(DDB)
1087: PUSHJ P,COMSET
1088: JRST UTYPET
1089:
1090:
1091:
1092:
1093:
1094:
1095: ↑TTYUSR:
1096: MOVSI IOS,USRB
1097: IORM IOS,DEVIOS(DDB)
1098: JRST SETRUN
TTYSER page# 0019 next prev
1100:
1101:
1102:
1103:
1104:
1105:
1106:
1107:
1108: IFN FTTALK,<
1109:
1110: ↑TTYTLK:
1111: PUSHJ P,GETDDB
1112: POPJ P,
1113: IFN FTTKBG,<
1114: LDB CHR,PUNIT ;BH 3/15/74 FOR BUG TRAP BELOW
1115: >
1116: MOVE TAC,DEVMOD(DDB)
1117: TLNN TAC,DVTTY
1118: POPJ P,
1119: MOVE IOS,DEVIOS(DDB)
1120: TLNE IOS,TTYHLD
1121: POPJ P,
1122: MOVE LINE,-3(P)
1123: MOVE LINE,DEVNAM(LINE)
1124: MOVE TAC,DEVNAM(DDB)
1125: CAMN LINE,TAC
1126: POPJ P,
1127: CAME LINE,DEVOPR
1128: CAMN TAC,DEVOPR
1129: JRST TTYTK1
1130: MOVSI TAC,TLKPRV
1131: TDNE TAC,JBTPRV(J)
1132: JUMPN J,TTYTK1
1133: TLNE IOS,TPMON
1134: TLNN IOS,IOFST
1135: POPJ P,
1136: TTYTK1: CONO PI,SCNOFF
1137: IFN FTTKBG,<
1138: HRRZ TAC,TTYTAB(CHR) ;BH 3/15/74
1139: JUMPE TAC,TTYTK2 ; BUG TRAP: MAYBE NO OBJECT DDB HERE?
1140: >
1141: LDB LINE,PUNIT
1142: MOVSI TAC,TLKRNG
1143: LDB CHR,PTALK
1144: TDNN TAC,LINTAB(LINE)
1145: HRRZ CHR,LINE
1146: IORM TAC,LINTAB(LINE)
1147: EXCH DDB,-3(P)
1148: LDB LINE,PUNIT
1149: DPB CHR,PTALK
1150: MOVSI TAC,TLKRNG
1151: IORM TAC,LINTAB(LINE)
1152: MOVEM LINE,TAC
1153: EXCH DDB,-3(P)
1154: LDB LINE,PUNIT
1155: DPB TAC,PTALK
1156: CONO PI,SCNON
1157: JRST CPOPJ1
1158:
1159: IFN FTTKBG,<
1160: TTYTK2: MOVE TAC,-3(P) ;BH 3/15/74 BUG TRAP HERE TO PAGE END
1161: PUSHACS
1162: PUSH P,DDB ;FORMER DDB OF TALKEE
1163: PUSH P,CHR ;DEAD TALKEE
1164: PUSH P,TAC ;TALKER'S DDB
1165: MOVE DDB,TAC
1166: LDB TAC,PUNIT ;TALKER
1167: PUSH P,TAC
1168: PUSHJ P,DISMES
1169: ASCIZ /ππππNO DDB FOR TALKEE AT TTYTK1!!
1170: TALKER=/
1171: POP P,TAC
1172: PUSHJ P,DISOCT
1173: PUSHJ P,DISMES
1174: ASCIZ / DDB=/
1175: POP P,TAC
1176: PUSHJ P,DISOCT
1177: PUSHJ P,DISMES
1178: ASCIZ /
1179: TALKEE=/
1180: POP P,TAC
1181: PUSHJ P,DISOCT
1182: PUSHJ P,DISMES
1183: ASCIZ / DDB WAS AT /
1184: POP P,TAC
1185: PUSHJ P,DISOCT
1186: PUSHJ P,DISMES
1187: ASCIZ /
1188: FIND A WIZARD! IF NONE, TYPE: POPJ 3,$X
1189: /
1190: PUSHJ P,DISFLU
1191: POPACS
1192: PUSHJ P,DDTCAL
1193: CONO PI,SCNON
1194: POPJ P,
1195: >
1196: >
TTYSER page# 0020 next prev
1198:
1199:
1200:
1201:
1202:
1203:
1204:
1205: ↑↑TTYSRC:
1206: JUMPE J,TTYF1
1207: MOVSI LINE,TTYATC
1208: MOVEI DDB,TTYLST
1209: TTYSRA: LDB TAC,PJOBN
1210: CAIE TAC,(J)
1211: JRST TTYF0
1212: TDNE LINE,DEVMOD(DDB)
1213: JRST TTYF9
1214: TTYF0: HLRZ DDB,DEVSER(DDB)
1215: JUMPN DDB,TTYSRA
1216: TTYF1: SKIPE TAC,DEVOPR
1217: JRST TTYF3
1218: MOVEI LINE,TCONLN
1219: SKIPE DDB,TTYTAB(LINE)
1220: JRST TTYF9
1221: MOVSI TAC,'CTY'
1222: TTYF3: PUSHJ P,GETDDB
1223: JRST SCREW
1224: TTYF9: MOVE IOS,DEVIOS(DDB)
1225:
1226: SETZ LINE,
1227: TLNE IOS,TTYDTC
1228: POPJ P,
1229: ↑STLNAC:
1230: LDB LINE,PUNIT
1231: HLL LINE,LINTAB(LINE)
1232: POPJ P,0
1233:
1234: SCREW: PUSHACS
1235: PUSHJ P,DISDATE
1236: PUSHJ P,DISMES
1237: ASCIZ/LOSE BIG! SOMEONE IS TRY TO TYPE ON A VIRGIN TTY,
1238: AND NO CORE AVAILABLE.
1239: /]
1240: POPACS
1241: CONSZ PI,77400
1242: POPJ P,
1243: JSP DAT,UERROR
TTYSER page# 0021 next prev
1245:
1246:
1247:
1248:
1249:
1250:
1251:
1252: ↑GETDDB:
1253: PUSHJ P,LOG2LN
1254: POPJ P,
1255: GETDBA: CAIL LINE,TTPLEN
1256: POPJ P,
1257: GETDB1: SKIPE DDB,TTYTAB(LINE)
1258: JRST CPOPJ1
1259: CAIL LINE,PTYL0
1260: POPJ P,
1261: PUSHJ P,DDBSRC
1262: POPJ P,
1263: HLLZM IOS,DEVIOS(DDB)
1264: PUSH P,DEVNAM(DDB)
1265: MOVEI TAC,ASSCON+ASSPRG
1266: ANDCAM TAC,DEVMOD(DDB)
1267: JRST TPOPJ1
1268:
1269: ↑LOG2LN:MOVS TAC,TAC
1270: MOVEI LINE,TCONLN
1271: CAIN TAC,'CTY'
1272: JRST CPOPJ1
1273: TRC TAC,'TTY'
1274: TRNE TAC,-1
1275: POPJ P,
1276: ↑SIX2LN:JUMPE TAC,CPOPJ
1277: MOVEI LINE,
1278: LOG2LL: ROT TAC,3
1279: TRZE TAC,2
1280: TRNE TAC,5
1281: POPJ P,
1282: ROTC TAC,3
1283: JUMPN TAC,LOG2LL
1284: CAIGE LINE,TTPLEN
1285: AOS (P)
1286: POPJ P,
TTYSER page# 0022 next prev
1288:
1289:
1290:
1291:
1292:
1293:
1294:
1295:
1296:
1297:
1298: ↑DDBSRC:
1299: HRRE TAC,LINE
1300: CAILE TAC,TTPLEN
1301: POPJ P,
1302: HLL LINE,LINTAB(LINE)
1303: TLNN LINE,DDDLIN
1304: JRST DDBSR1
1305: MOVE AC3,AVLBIT
1306: CONSO PI,770000
1307: TDNE AC3,VDMAP-DDL0(LINE)
1308: SKIPE DDOFF
1309: POPJ P,
1310: DDBSR1: MOVEI AC3,TTYFS
1311: PUSHJ P,SFSGET
1312: POPJ P,
1313: MOVEI DDB,DDBSKW(AC1)
1314: HRLI AC1,TTYLST-DDBSKW
1315: BLT AC1,TTYPTR(DDB)
1316: SETZM DEVIOS(DDB)
1317: SETZM DEVLOG(DDB)
1318: SETZM DEVNAM(DDB)
1319: SETZM DEVBUF(DDB)
1320: SETZM PTYPTR(DDB)
1321: SETZM SAVDDB(DDB)
1322: MOVSI AC1,TTICHR
1323: DPB AC1,PJOBN
1324: DPB AC1,PUNIT
1325: HRRI AC1,TIBF-1(DDB)
1326: MOVEM AC1,TTIBUF(DDB)
1327: MOVSI AC1,TTOCHR
1328: HRRI AC1,TOBF-1(DDB)
1329: MOVEM AC1,TTOBUF(DDB)
1330: PUSHJ P,TSETBF
1331: MOVSI TAC,STDTBL
1332: HRRI TAC,ACTBTS(DDB)
1333: BLT TAC,ACTMOD(DDB)
1334: MOVE TAC,[XWD TTYUSE!TTYATC,ASSCON!ASSPRG]
1335: ANDCAM TAC,DEVMOD(DDB)
1336: HRLZI AC1,(DDB)
1337: HRR AC1,DEVSER(DDB)
1338: CONO PI,SCNOFF
1339: EXCH AC1,TTYLST+DEVSER
1340: MOVEM AC1,DEVSER(DDB)
1341: CONO PI,SCNON
1342: MOVSI TAC,PROG
1343: MOVEM TAC,DEVIAD(DDB)
1344: MOVEM TAC,DEVOAD(DDB)
1345: MOVE IOS,[XWD TPMON+IOFST,IOACT]
1346: MOVEM IOS,DEVIOS(DDB)
1347: PUSHJ P,TSETBF
1348: MOVE TAC,[XWD TTYUSE,0]
1349: CAIE LINE,-1
1350: JRST [ TLNN LINE,DDDLIN!DISLIN
1351: JRST SCNIN
1352: PUSHJ P,DPYMAKE
1353: JRST TTYKL5
1354: JRST SCNIN]
1355: TLO TAC,TTYATC
1356: IORM TAC,DEVMOD(DDB)
1357: SETOM JBTLIN(ITEM)
1358: DPB ITEM,PJOBN
1359: MOVSI IOS,TTYDTC
1360: IORB IOS,DEVIOS(DDB)
1361: JRST CPOPJ1
1362:
1363:
1364:
1365: STDTBL: 777777777777
1366: 777700037600
1367: 000000374000
1368: 000007600000
TTYSER page# 0023 next prev
1370:
1371:
1372:
1373:
1374:
1375:
1376:
1377:
1378:
1379:
1380:
1381:
1382:
1383:
1384: SCNIN: IORM TAC,DEVMOD(DDB)
1385: DPB LINE,PUNIT
1386:
1387: IFN FTTALK,<
1388: DPB LINE,PTALK
1389:
1390: >
1391: MOVEI TAC,
1392: ANDI LINE,-1
1393: SCNIN0: ROTC TAC,-3
1394: HRRI TAC,2
1395: ROT TAC,-3
1396: JUMPN LINE,SCNIN0
1397: HRRI TAC,'TTY'
1398: MOVSM TAC,DEVNAM(DDB)
1399: PUSHJ P,STLNAC
1400: HRRM DDB,TTYTAB(LINE)
1401: MOVSI TAC,'CTY'
1402: TLNE LINE,CTYLIN
1403: MOVEM TAC,DEVNAM(DDB)
1404: JRST CPOPJ1
TTYSER page# 0024 next prev
1406:
1407:
1408:
1409: TTYSKL: PUSHJ P,STLNAC
1410: TLNE LINE,DDDLIN!DISLIN
1411: SKIPN AC2,LETAB-DPYL0(LINE)
1412: POPJ P,
1413: MOVEI AC1,-DPYL0(LINE)
1414: SETO AC3,
1415: EXCH AC3,LECLIN(AC2)
1416: JUMPL AC3,CPOPJ
1417: SETZM LEACT(AC2)
1418: LSH AC1,=12
1419: ADD AC1,DPYKRQ
1420: CONO PI,PIOFF
1421: IDPB AC1,CLOCK(PID)
1422: CONO PI,PION
1423: POPJ P,
1424:
1425: ↑TTYREL:
1426: IFN DILNUM,<
1427: LDB LINE,PUNIT
1428: PUSHJ P,DILTRL
1429: >
1430: HLLZS TAC1,DEVIOS(DDB)
1431: MOVE TAC,DEVMOD(DDB)
1432: TLNE TAC,TTYATC
1433: POPJ P,
1434: MOVSI IOS,TPMON
1435: IORB IOS,DEVIOS(DDB)
1436: TRNE TAC,ASSCON
1437: POPJ P,
1438:
1439:
1440:
1441:
1442:
1443:
1444:
1445:
1446:
1447:
1448:
1449:
1450: ↑TTYKIL:
1451: CONO PI,SCNOFF
1452: TLNE IOS,TTYDTC
1453: JRST TTYKL5
1454: PUSHJ P,TTYSKL
1455: TTYKL7: SKIPN DDB,TTYTAB(LINE)
1456: JRST TYPT1
1457: TRNN DDB,-1
1458: JRST [PUSHJ P,TTYKL9
1459: IFN FTTTYBUG,< PUSHJ P,CNTCOM >
1460: JRST TYPT1]
1461: MOVSI IOS,TTYIOW!IOW!TTYDTC!DDTM
1462: ANDCAM IOS,DEVIOS(DDB)
1463:
1464: MOVE TAC,[TTYATC,,ASSCON!ASSPRG]
1465: ANDCAM TAC,DEVMOD(DDB)
1466: MOVSI IOS,TPMON
1467: DPB IOS,PJOBN
1468: IORB IOS,DEVIOS(DDB)
1469:
1470: SKIPG TTYTAB(LINE)
1471: JRST TYPT1
1472: MOVE TAC,TITCTR(DDB)
1473: CAMN TAC,TIPCTR(DDB)
1474: JRST NOTYPA
1475: SKIPLE TISYNC(DDB)
1476: PUSHJ P,COMSET
1477: JRST TYPT1
1478:
1479: NOTYPA:
1480: TLNN LINE,PTYUSE
1481: TLOE IOS,IO+TOIP
1482: JRST TTYKL6
1483: TTYKL5: MOVEI TAC,TTYLST
1484: CAIE TAC,(DDB)
1485: JRST TTYKL2
1486: HLLZS DEVIOS(DDB)
1487: PUSHJ P,LINCLR
1488: SETZM DEVLOG(DDB)
1489: JRST TYPT1
1490:
1491: TTYKL6: IORB IOS,DEVIOS(DDB)
1492: JRST TYPT1
TTYSER page# 0025 next prev
1494:
1495:
1496:
1497: TTYKL2: MOVEI AC1,TTYLST
1498: TTYKL3: MOVE TAC,AC1
1499: HLRZ AC1,DEVSER(AC1)
1500: CAIE AC1,(DDB)
1501: JUMPN AC1,TTYKL3
1502: JUMPE AC1,TTYKL4
1503: MOVE AC1,DEVSER(DDB)
1504: MOVEM AC1,DEVSER(TAC)
1505: TTYKL8: PUSHJ P,LINCLR
1506: TLNN IOS,TTYDTC
1507: PUSHJ P,TTYKL9
1508: IFN FTTTYBUG,< PUSHJ P,CNTCOM >
1509: CONO PI,SCNON
1510: MOVEI AC1,-DDBSKW(DDB)
1511: PUSHJ P,FSGIVE
1512: MOVEI DDB,0
1513: POPJ P,
1514:
1515: LINCLR: TLNE IOS,TTYDTC
1516: POPJ P,
1517: TLNN LINE,PTYLIN
1518: IOR LINE,LINBIT(LINE)
1519: TLZ LINE,KILMSK
1520: HLLM LINE,LINTAB(LINE)
1521: POPJ P,
1522:
1523: TTYKL1: LDB LINE,PUNIT
1524: SKIPGE TTYTAB(LINE)
1525: SOS COMCNT
1526: PUSHJ P,TTYKL9
1527: IFN FTTTYBUG,< PUSHJ P,CNTCOM>
1528: SETZM DEVNAM(DDB)
1529: JRST TSETBF
1530:
1531: TTYKL4:
1532: PUSHACS
1533: PUSH P,TAC
1534: PUSH P,DDB
1535: PUSHJ P,DISMES
1536: ASCIZ /πππDDB NOT FOUND IN LIST AT TTYKIL
1537: DDB=/
1538: POP P,TAC
1539: PUSHJ P,DISOCT
1540: PUSHJ P,DISMES
1541: ASCIZ /
1542: LAST LINK=/
1543: POP P,TAC
1544: PUSHJ P,DISOCT
1545: PUSHJ P,DISMES
1546: ASCIZ /
1547: /
1548: POPACS
1549: JRST TTYKL8
1550:
1551:
1552:
1553:
1554:
1555: TTYKL9: LDB AC2,PTALK
1556: MOVEI AC3,0
1557: EXCH AC3,TTYTAB(LINE)
1558: JUMPE AC3,CPOPJ
1559: CAIN AC2,(LINE)
1560: POPJ P,
1561: PUSH P,AC2
1562: MOVE AC3,LINE
1563: TTYK91: MOVE LINE,AC2
1564: LDB AC2,PTALK
1565: CAIE AC2,(AC3)
1566: JRST TTYK91
1567: POP P,AC2
1568: DPB AC2,PTALK
1569: CAIE AC2,(LINE)
1570: JRST TTYK92
1571: MOVSI AC2,TLKRNG
1572: ANDCAM AC2,LINTAB(LINE)
1573: TTYK92: MOVE LINE,AC3
1574: POPJ P,
TTYSER page# 0026 next prev
1576:
1577:
1578:
1579:
1580:
1581:
1582:
1583:
1584:
1585:
1586:
1587: ↑OUTCH6: ADDI CHR,40
1588:
1589: ↑OUTCHS:
1590: JUMPE PID,OUTC1S
1591: CONSO APR,MAOFF
1592: JRST CTYTYO
1593: PUSHACS
1594: PUSHJ P,DISMES
1595: ASCIZ /ππPID CLOBBERED AT OUTCHS
1596: PID=/
1597: MOVE TAC,PID
1598: PUSHJ P,DISOCT
1599: PUSHJ P,DISMES
1600: ASCIZ /
1601: /
1602: POPACS
1603: SETZ PID,
1604: OUTC1S: PUSH P,TAC
1605: PUSH P,HPOS
1606:
1607: PUSHJ P,OUTCH5
1608: POP P,HPOS
1609: JRST TPOPJ
1610:
1611: OUTCHR: MOVE TAC,DEVIOS(DDB)
1612: TLNE TAC,TTYDTC
1613: POPJ P,
1614: ANDI TAC,16
1615: CAIN TAC,10
1616: JRST OUTCH2
1617: MOVEI AC3,20
1618: CAML AC3,TOFCTR(DDB)
1619: JRST GETCH1
1620: OUTCH5: MOVE TAC,DEVIOS(DDB)
1621: TLNE TAC,TTYDTC
1622: POPJ P,
1623: ANDI TAC,16
1624: CAIN TAC,10
1625: JRST OUTCH2
1626: ANDI CHR,177
1627: PUSH P,LINE
1628: PUSHJ P,STLNAC
1629: LDB HPOS,PHPOS
1630: MOVE AC3,HPOS
1631: PUSHJ P,ADJHP
1632: JFCL
1633: TLNE LINE,DISLIN!IMLIN!DDDLIN!PTYLIN
1634: JRST OUTCHA
1635: CAIL HPOS,=72
1636: PUSHJ P,CRLFEC
1637: OUTCHA: DPB HPOS,PHPOS
1638: TLNN TAC,SPOUT
1639: JRST OUTC1X
1640: TLNE LINE,PTYLIN
1641: TLNE LINE,IMPBIT
1642: JRST OUTCH1
1643: OUTC1X: POP P,LINE
1644: OUTCH2: CONO PI,SCNOFF
1645: PUSHJ P,PUTCHO
1646: CONO PI,SCNON
1647: POPJ P,
TTYSER page# 0027 next prev
1649:
1650:
1651:
1652: OUTCH1: MOVE HPOS,AC3
1653: MOVE TAC,CHR
1654: CAIN CHR,11
1655: TLNE LINE,TBXPND
1656: JRST OUTC1Y
1657: TLNE LINE,IMLIN!PTYLIN!DISLIN!DDDLIN
1658: JRST OUTC1X
1659: OUTC1A: POP P,LINE
1660: ANDI HPOS,7
1661: XCT (HPOS)[ MOVEI HPOS,6
1662: MOVEI HPOS,7
1663: MOVEI HPOS,7
1664: MOVEI HPOS,7
1665: MOVEI HPOS,7
1666: JRST OUTCH2
1667: JRST OUTCH2
1668: JRST OUTC1Z]
1669: PUSHJ P,OUTCH2
1670: MOVEI CHR,IDLECH
1671: JRST OUTC1C
1672:
1673: OUTC1Y: POP P,LINE
1674: OUTC1Z: MOVEI CHR,40
1675: CAIE TAC,11
1676: MOVEI CHR,12
1677: OUTC1C: CAIN TAC,14
1678: MOVEI HPOS,0
1679: CAIN TAC,13
1680: MOVEI HPOS,4
1681: OUTC1B:
1682: PUSHJ P,OUTCH2
1683: ADDI HPOS,1
1684: TRNE HPOS,7
1685: JRST OUTC1B
1686: POPJ P,
1687:
1688:
1689:
1690:
1691:
1692:
1693: ADJHP: PUSHJ P,SPCHEK
1694: AOJA HPOS,CPOPJ
1695: CAIL CHR,40
1696: JRST CPOPJ1
1697: CAIN CHR,15
1698: MOVEI HPOS,0
1699: CAIE CHR,11
1700: JRST CPOPJ1
1701: TRO HPOS,7
1702: AOJA HPOS,CPOPJ1
TTYSER page# 0028 next prev
1704:
1705:
1706:
1707:
1708:
1709:
1710:
1711: PUTCHI:
1712: SOSG FCTR(DAT)
1713: JRST PUTCI0
1714: PUTCHA: SOSLE PCTR(DAT)
1715: JRST PUTCI1
1716: PUSH P,TAC
1717: MOVE TAC,BUF(DAT)
1718: HLRZM TAC,PCTR(DAT)
1719: HRRM TAC,PUTR(DAT)
1720: POP P,TAC
1721: PUTCI1: IDPB CHR,PUTR(DAT)
1722: JRST CPOPJ1
1723:
1724:
1725:
1726:
1727: TTIOUT: MOVE IOS,DEVIOS(DDB)
1728: AOS TOFCTR(DDB)
1729: TRNN IOS,MERTPO
1730: JRST GETCH1
1731: TRON IOS,MERTP1
1732: PUSHJ P,SETBFI
1733: MOVEM IOS,DEVIOS(DDB)
1734: MOVEI DAT,TTIBUF(DDB)
1735: PUSHJ P,PUTCHI
1736: POPJ P,
1737: POPJ P,
1738:
1739:
1740:
1741:
1742:
1743:
1744:
1745: PUTCHO: PUSH P,TAC
1746: LDB TAC,PUNIT
1747: HLL TAC,LINTAB(TAC)
1748: TLNE TAC,TTYFIL
1749: JRST FILLCR
1750: FILNCR: TLNN TAC,FCS
1751: JRST PUTCNV
1752: PUTNLC: POP P,TAC
1753: PUTCRS: SOSG TOFCTR(DDB)
1754: JRST TTIOUT
1755: SOSLE TOPCTR(DDB)
1756: JRST PUTCO1
1757: PUSH P,TAC
1758: MOVE TAC,TTOBUF(DDB)
1759: HLRZM TAC,TOPCTR(DDB)
1760: HRRM TAC,TOPUTR(DDB)
1761: POP P,TAC
1762: PUTCO1: IDPB CHR,TOPUTR(DDB)
1763: POPJ P,
1764:
1765: FILLCR: CAIE CHR,15
1766: JRST FILNCR
1767: LDB TAC,PIOMOD
1768: CAIE TAC,10
1769: CAIN TAC,11
1770: JRST FILNCR
1771: MOVEI TAC,10
1772: EXCH TAC,(P)
1773: PUTCRX: PUSHJ P,PUTCRS
1774: JUMPE CHR,CRFULL
1775: SOSLE (P)
1776: JRST PUTCRX
1777: CRFULL: POP P,(P)
1778: POPJ P,
1779:
1780: PUTCNV: CAIL CHR,"a"
1781: CAILE CHR,"z"
1782: JRST PUTNLC
1783: ANDCMI CHR,40
1784: JRST PUTNLC
TTYSER page# 0029 next prev
1786:
1787:
1788:
1789:
1790:
1791:
1792:
1793:
1794:
1795: ↑GETCHR:PUSHJ P,GETCHY
1796: ANDI CHR,177
1797: POPJ P,
1798:
1799: GETCHY:
1800: HLRZ CHR,BUF(DAT)
1801: CAIN CHR,TTICHR
1802: JRST GETCHA
1803: PUSHACS
1804: PUSH P,LINE
1805: PUSHJ P,DISMES
1806: ASCIZ /TTY/
1807: POP P,TAC
1808: PUSHJ P,DISLOC
1809: PUSHJ P,DISMES
1810: ASCIZ / AT GETCHY FOR OUTPUT
1811: /
1812: POPACS
1813: DEBCHECK
1814: JRST GETCHO
TTYSER page# 0030 next prev
1816:
1817:
1818:
1819: GETCHA: SOSGE TSYNC(DAT)
1820: SETZM TSYNC(DAT)
1821: LDB CHR,[POINT PUNITS,-TTIBUF+DEVCHR(DAT),35-PUNITP]
1822: CAIL CHR,DPYL0
1823: CAILE CHR,DPYL0+DPYNUM+DDNUM-1
1824: JRST GETCHO
1825: HLRZ CHR,LETAB-DPYL0(CHR)
1826: TRNN CHR,WTFLAG
1827: JRST GETCHO
1828: PUSHJ P,GETCHO
1829: PUSHACS
1830: LDB DAT,[POINT PUNITS,-TTIBUF+DEVCHR(DAT),35-PUNITP]
1831: PUSHJ P,ACTIV3
1832: POPACS
1833: POPJ P,
1834:
1835: ↑GETCHO:
1836: GETCHX: MOVE CHR,TCTR(DAT)
1837: CAMN CHR,PCTR(DAT)
1838: JRST GETCH1
1839: SOSLE TCTR(DAT)
1840: JRST GETCH2
1841: MOVE CHR,BUF(DAT)
1842: HLRZM CHR,TCTR(DAT)
1843: HRRM CHR,TAKR(DAT)
1844: GETCH2: ILDB CHR,TAKR(DAT)
1845: AOS FCTR(DAT)
1846: JUMPE CHR,GETCHX
1847: POPJ P,
1848: GETCH1: TDZA CHR,CHR
1849: PUTCI0: AOS FCTR(DAT)
1850: POPJ P,
TTYSER page# 0031 next prev
1852:
1853:
1854:
1855: ↑TSETBF:
1856: PUSHJ P,SETBF2
1857:
1858: ↑SETBFI:MOVE DAT,J
1859: LDB J,PJOBN
1860: JUMPE J,SETBF4
1861: MOVSI TAC,COMSNB
1862: PUSHJ P,CLRSIN
1863: SETBF4: MOVE J,DAT
1864: MOVEI DAT,1
1865: DPB DAT,PCOMIC
1866: DPB DAT,PLSTLC
1867: MOVEI DAT,TTIBUF(DDB)
1868: SETZM TISYNC(DDB)
1869: HRLI TAC,1100
1870: JRST SETBF0
1871: ↑SETBF3:PUSHJ P,XMTIN4
1872: SETBF2: MOVEI DAT,TTOBUF(DDB)
1873: ↑SETBFO:HRLI TAC,700
1874: SETBF0: HRR TAC,BUF(DAT)
1875: MOVEM TAC,TAKR(DAT)
1876: MOVEM TAC,PUTR(DAT)
1877: MOVEI TAC,1
1878: MOVEM TAC,TCTR(DAT)
1879: MOVEM TAC,PCTR(DAT)
1880: HLRZ TAC,BUF(DAT)
1881: MOVEM TAC,FCTR(DAT)
1882: POPJ P,
TTYSER page# 0032 next prev
1884:
1885:
1886:
1887:
1888:
1889:
1890:
1891: ↑SPCHEK:LDB TAC,[POINT 7,CHR,35]
1892: SKIPE TAC,SPCTAB(TAC)
1893: TLNN TAC,SPCBTS
1894: POPJ P,
1895: JRST CPOPJ1
1896:
1897:
1898:
1899:
1900:
1901: SPACTN←←400000
1902: ALLSPA←←200000
1903: SPOUT←←100000
1904: IMLCHR←←40000
1905: ↑BREAKB←←20000
1906: SPHPOS←←10000
1907: FCSBRK←←4000
1908: ECHSUP←←2000
1909: SPBKDS←←1000
1910: LETTER←←400
1911: NUMBER←←200
1912: LNUMBT←←LETTER!NUMBER
1913:
1914: SPCBTS←←SPACTN!SPOUT!BREAKB!SPHPOS!FCSBRK
1915:
1916: DEFINE SPC(U,L,X){FOR Z←U,L {X
1917: }
1918: }
1919:
1920: SUPBTS←←1
1921: SUPCCR←←2
1922: SUPSCM←←4
1923:
1924: SPCACT:
1925: LDB TAC,[POINT 7,CHR,35]
1926: JUMPE TAC,CPOPJ
1927: PUSH P,LINE
1928: IDIVI TAC,=36
1929: ADDI TAC,(DDB)
1930: MOVE TAC,ACTBTS(TAC)
1931: LSH TAC,(LINE)
1932: MOVE LINE,ACTMOD(DDB)
1933: TLNE TAC,400000
1934: JRST TTPOP
1935: TRNE LINE,SUPSCM
1936: CAIE UCHN,3
1937: TRNN LINE,SUPBTS
1938: JUMPG UCHN,TTPOP
1939: AOS -1(P)
1940: TTPOP: POP P,LINE
1941: POPJ P,
TTYSER page# 0033 next prev
1943:
1944: SPCTAB: XWD ALLSPA+SPACTN+ECHSUP+BREAKB+SPBKDS,CONTC
1945: 0
1946: XWD ALLSPA+SPACTN+ECHSUP+IMLCHR,CONTB
1947: 0
1948: 0
1949: 0
1950: 0
1951: 0
1952: 0
1953: XWD ALLSPA+SPACTN+SPHPOS+SPOUT+SPBKDS,CONTI
1954: XWD BREAKB+SPBKDS,0
1955: XWD ALLSPA+SPACTN+SPOUT,CONTK
1956: XWD ALLSPA+SPACTN+SPOUT,CONTL
1957: XWD ALLSPA+SPACTN+SPHPOS+SPBKDS,CRLF
1958: 0
1959: XWD SPACTN,CONTO
1960: 0
1961: 0
1962: 0
1963: 0
1964: 0
1965: XWD SPACTN,CONTU
1966: 0
1967: 0
1968: 0
1969: 0
1970: XWD ALLSPA+SPACTN+ECHSUP+IMLCHR,CONTZ
1971: 0
1972: 0
1973: 0
1974: 0
1975: 0
1976:
1977: SPC (" ","0"-1,0)
1978: SPC ("0","9",<XWD NUMBER,0>)
1979: SPC ("9"+1,"A"-1,0)
1980: SPC ("A","Z",<XWD LETTER,0>)
1981: SPC ("Z"+1,"a"-1,0)
1982: SPC ("a","z",<XWD LETTER,0>)
1983: SPC ("z"+1,174,0)
1984:
1985: XWD ALLSPA+SPACTN+BREAKB+ECHSUP,ALTMOD
1986: 0
1987: XWD SPACTN+ECHSUP+FCSBRK+SPBKDS,RUBOUT
1988:
TTYSER page# 0034 next prev
1990:
1991:
1992:
1993: ↑TTYUUO:
1994: CAIL UCHN,TTUUOL
1995: POPJ P,
1996: PUSHJ P,TTYFNU
1997: HLRZ TAC,TTUUOT(UCHN)
1998: TLNE IOS,TTYDTC
1999: TRNE TAC,200000
2000: CAIA
2001: POPJ P,
2002: SKIPG TTUUOT(UCHN)
2003: PUSHJ P,UNSUPR
2004: JRST @TTUUOT(UCHN)
2005:
2006: DEFINE UUOS{FOR X IN(<INCHRW,600000>,<OUTCHR,,ONEOUT>,<INCHRS,600000>,<OUTSTR>
2007: ,<INCHWL,600000>,<INCHSL,600000>,GETLIN,<SETLIN>
2008: ,<RESCAN,,TRESCU>,<CLRBFI,,CLRBUF>,<CLRBFO,,SETBF3>,<INSKIP,600000>
2009: ,<INWAIT,600000,IWAIT>,SETACT,<TTREAD,200000>,OUTFIV)}
2010:
2011: UUOMAC TTUUOT,TTYUUO
2012: TTUUOL←←UUOCNT
2013:
2014: CLRBUF: TLNE IOS,TPMON
2015: POPJ P,
2016: TLNE LINE,IMLIN
2017: JRST IMLCLR
2018: PUSHJ P,SETBFI
2019: TLNE LINE,DDDLIN!DISLIN
2020: SKIPL TAC,LETAB-DPYL0(LINE)
2021: POPJ P,
2022: MOVEI CHR,10044
2023: SETZ UCHN,
2024: JRST PTLL3
2025:
2026: IMLCLR: MOVE CHR,[ASCID/π/]
2027: PUSHJ P,FIVOUT
2028: PUSHJ P,SETBFI
2029: MOVSI IOS,IMLTTY
2030: ANDCAB IOS,DEVIOS(DDB)
2031: POPJ P,
2032:
2033: INSKIP: TRNE UUO,1
2034: SKIPLE TISYNC(DDB)
2035: TLNE IOS,TTYDTC!TPMON
2036: POPJ P,
2037: MOVE TAC,TIPUTR(DDB)
2038: CAME TAC,TITAKR(DDB)
2039: JRST CPOPJ1
2040: TLNN LINE,DDDLIN!DISLIN
2041: POPJ P,
2042: SKIPGE TAC,LETAB-DPYL0(LINE)
2043: SKIPG CCPOS(TAC)
2044: POPJ P,
2045: JRST CPOPJ1
TTYSER page# 0035 next prev
2047:
2048:
2049:
2050: INCHSL: SKIPG TISYNC(DDB)
2051: POPJ P,
2052: INCHRS:
2053: TLNE IOS,TPMON
2054: POPJ P,
2055: PUSHJ P,INCHGT
2056: MOVEI DAT,TTIBUF(DDB)
2057: PUSHJ P,GETCHY
2058: PUSHJ P,PTICHK
2059: JUMPE CHR,CPOPJ
2060: CAIN CHR,600
2061: JRST INCHSZ
2062: INCHSY: XCTR XW,[MOVEM CHR,(UUO)]
2063: JRST CPOPJ1
2064:
2065: INCHSZ: MOVE CHR,DEVMOD(DDB)
2066: TLNN CHR,TTYATC
2067: TRNN CHR,ASSCON!ASSPRG
2068: JRST MONUS6
2069: JRST INCHSY
2070:
2071:
2072:
2073: INCHWL: PUSHJ P,INCHSL
2074: JRST .+2
2075: POPJ P,0
2076: TLNE LINE,IMLIN
2077: JRST IMCHWL
2078: IMCHW0: MOVE IOS,[XWD TTYIOW,IOACT]
2079: IORM IOS,DEVIOS(DDB)
2080: MOVSI IOS,DDTM
2081: ANDCAB IOS,DEVIOS(DDB)
2082: PUSHJ P,TWSYNC
2083: PUSHJ P,INCHSL
2084: JRST IMCHW0
2085: POPJ P,
2086:
2087: IMCHWL: TLNN LINE,SPCBRK
2088: JRST IMCHW0
2089: MOVE CHR,[ASCID/α/]
2090: PUSHJ P,FIVOUT
2091: JRST IMCHW0
2092:
2093: IWAIT: LDB CHR,PLASTC
2094: TRNE UUO,-1
2095: XCTR XW,[MOVMM CHR,(UUO)]
2096: SKIPLE TISYNC(DDB)
2097: TLNE IOS,TPMON
2098: CAIA
2099: POPJ P,
2100: MOVE IOS,[XWD TTYIOW,IOACT]
2101: IORM IOS,DEVIOS(DDB)
2102: MOVSI IOS,DDTM
2103: ANDCAB IOS,DEVIOS(DDB)
2104: PUSHJ P,TWSYNC
2105: JRST IWAIT
2106:
2107:
2108:
2109: OUTSTR: JRST DDT5
2110:
2111: INCHGT: TLNN LINE,DISLIN!DDDLIN
2112: POPJ P,
2113: MOVE TAC,TITAKR(DDB)
2114: CAME TAC,TIPUTR(DDB)
2115: POPJ P,
2116: INCHGB: SKIPGE TAC,LETAB-DPYL0(LINE)
2117: SKIPG CCPOS(TAC)
2118: POPJ P,
2119: JRST LACTIV
2120:
TTYSER page# 0036 next prev
2122:
2123:
2124:
2125:
2126:
2127: INCHRW: PUSHJ P,INCHRS
2128: JRST .+2
2129: POPJ P,
2130: TLNE LINE,IMLIN
2131: JRST IMCHRW
2132: IMCHR0: MOVE IOS,[XWD TTYIOW+DDTM,IOACT]
2133: IORB IOS,DEVIOS(DDB)
2134: PUSHJ P,TWSYNC
2135: JRST INCHRW
2136:
2137: IMCHRW: MOVE CHR,[ASCID/↓/]
2138: PUSHJ P,FIVOUT
2139: JRST IMCHR0
2140:
2141:
2142:
2143: ONEOUT: XCTR XR,[MOVE CHR,(UUO)]
2144: TRNE IOS,IOSUPR
2145: POPJ P,0
2146: ANDI CHR,177
2147: JUMPE CHR,CPOPJ
2148: PUSHJ P,OUTCHR
2149: JUMPN CHR,TYPGO
2150: PUSHJ P,TTOUWS
2151: JRST ONEOUT
2152:
2153:
2154:
2155: GETLIN: XCTR XR,[SKIPGE TAC,(UUO)]
2156: JRST GETLN1
2157: MOVEI LINE,0
2158: CAIL TAC,TTPLEN
2159: SOJL LINE,GETLN3
2160: MOVE LINE,LINTAB(TAC)
2161: HRRI LINE,(TAC)
2162: GETLN1: MOVE TAC,LINE
2163: JRST GETLN5
2164: GETLN2: TLNN TAC,PTYLIN
2165: JRST GETLN4
2166: MOVE TAC,PTYJOB-PTYL0(TAC)
2167: MOVE TAC,JBTLIN(TAC)
2168: GETLN5: CAME TAC,[-1]
2169: JRST GETLN2
2170: JRST GETLN3
2171: GETLN4: AND TAC,[XWD DISLIN!DDDLIN,0]
2172: TDO LINE,TAC
2173: GETLN3: XCTR XW,[MOVEM LINE,(UUO)]
2174: POPJ P,
2175:
2176:
2177:
2178: SETLIN: MOVSI TAC,LGLSET&¬IMPBIT
2179: TLNE LINE,DISLIN!DDDLIN!PTYLIN!IMLIN
2180: TLZ TAC,TBXPND
2181: ANDCAM TAC,LINTAB(LINE)
2182: TLO TAC,IMPBIT
2183: XCTR XR,[AND TAC,(UUO)]
2184: IORB TAC,LINTAB(LINE)
2185: HLL LINE,TAC
2186: SYNCHK: MOVE AC1,TITCTR(DDB)
2187: MOVE AC2,TITAKR(DDB)
2188: MOVEI AC3,1
2189: SETZM TISYNC(DDB)
2190: SYNCH2: CAMN AC1,TIPCTR(DDB)
2191: POPJ P,
2192: SOJG AC1,SYNCH3
2193: HRR AC2,TTIBUF(DDB)
2194: HLRZ AC1,TTIBUF(DDB)
2195: SYNCH3: ILDB CHR,AC2
2196: TLNE IOS,TPMON
2197: JRST SYNCH5
2198: TLNN LINE,SPCBRK
2199: JRST SYNCH1
2200: LDB UCHN,[POINT 2,CHR,28]
2201: PUSHJ P,SPCACT
2202: JRST SYNCH4
2203: AOJA AC3,SYNCH2
2204: SYNCH1: TRNE CHR,600
2205: JRST SYNCH4
2206: SYNCH5: PUSHJ P,SPCHEK
2207: AOJA AC3,SYNCH2
2208: TLNE TAC,BREAKB!FCSBRK
2209: SYNCH4: MOVEM AC3,TISYNC(DDB)
2210: AOJA AC3,SYNCH2
2211:
2212: SYNCHA: MOVN AC1,FCTR(DAT)
2213: ADDI AC1,TTICHR
2214: MOVEM AC1,TSYNC(DAT)
2215: POPJ P,
2216:
2217:
2218:
2219:
2220:
2221:
2222:
2223:
2224: SETACT: XCTR XR,[MOVS TAC,(UUO)]
2225: TRNN TAC,-1
2226: JRST STACT1
2227: MOVE TAC1,ACTBTS(DDB)
2228: XCTR XW,[MOVEM TAC1,(TAC)]
2229: MOVE TAC1,ACTBTS+1(DDB)
2230: XCTR XW,[MOVEM TAC1,1(TAC)]
2231: MOVE TAC1,ACTBTS+2(DDB)
2232: XCTR XW,[MOVEM TAC1,2(TAC)]
2233: MOVE TAC1,ACTMOD(DDB)
2234: XCTR XW,[MOVEM TAC1,3(TAC)]
2235: STACT1: HLRZ TAC1,TAC
2236: JUMPE TAC1,CPOPJ
2237: XCTR XR,[MOVE TAC,(TAC1)]
2238: MOVEM TAC,ACTBTS(DDB)
2239: XCTR XR,[MOVE TAC,1(TAC1)]
2240: MOVEM TAC,ACTBTS+1(DDB)
2241: XCTR XR,[MOVE TAC,2(TAC1)]
2242: MOVEM TAC,ACTBTS+2(DDB)
2243: XCTR XR,[MOVE TAC,3(TAC1)]
2244: MOVEM TAC,ACTMOD(DDB)
2245: POPJ P,
TTYSER page# 0037 next prev
2247:
2248:
2249:
2250:
2251:
2252:
2253:
2254:
2255: OUTFIV: XCTR XR,[MOVE CHR,(UUO)]
2256: PUSHJ P,FIVOUT
2257: POPJ P,
2258:
2259: FIVOU2: CONO PI,SCNON
2260: FIVOU1: PUSHJ P,TTOUWS
2261: CAIA
2262:
2263: FIVOUT: PUSH P,CHR
2264: MOVEI AC3,6
2265: CAML AC3,TOFCTR(DDB)
2266: JRST FIVOU1
2267:
2268: CONO PI,SCNOFF
2269: TLNE IOS,TTYDTC
2270: JRST TYPT1
2271:
2272: CAML AC3,TOFCTR(DDB)
2273: JRST FIVOU2
2274:
2275: PUSHJ P,UNSUPR
2276: MOVSI TAC,(<POINT 7,(P),-1>)
2277:
2278: TRNN CHR,1
2279: JRST FIVOU3
2280: MOVEI CHR,177
2281: PUSHJ P,PUTCHO
2282:
2283: FIVOU3: ILDB CHR,TAC
2284: JUMPE CHR,FIVOU4
2285: PUSHJ P,PUTCHO
2286: TLNE TAC,760000
2287: JRST FIVOU3
2288:
2289: FIVOU4: CONO PI,SCNON
2290: POP P,(P)
2291: JRST TYPGO
TTYSER page# 0038 next prev
2293:
2294:
2295:
2296:
2297: ↑TTYMES:
2298: MOVE UUO,TAC
2299: XCTR XR,[MOVE TAC,(UUO)]
2300: TLNN TAC,770000
2301: JRST TTYMS1
2302: CAMN TAC,['TTY ']
2303: JRST [PUSHJ P,TTYFND
2304: JRST TTYMS0]
2305: PUSHJ P,GETDDB
2306: POPJ P,
2307: JRST TTYMS0
2308:
2309: TTYMS1: MOVE LINE,TAC
2310: PUSHJ P,GETDBA
2311: POPJ P,
2312: TTYMS0: XCTR XR,[MOVE UUO,1(UUO)]
2313: TLNN UUO,770000
2314: TLO UUO,440000
2315: HLRZ TAC,UUO
2316: ANDI TAC,7777
2317: TLZ UUO,7777
2318: TLO UUO,700
2319: JUMPN TAC,.+2
2320: MOVEI TAC,777777
2321: XCTR XW,[MOVEM TAC,JOBTM2]
2322: MOVEI DAT,TTOBUF(DDB)
2323: MOVE IOS,DEVIOS(DDB)
2324: AOS (P)
2325: PUSHJ P,STLNAC
2326: TLNE LINE,CTYLIN
2327: JRST TTYMS9
2328: TTYMS3: XCTR XRW,[SOSL CHR,JOBTM2]
2329: XCTR XLB,[ILDB CHR,UUO]
2330: JUMPLE CHR,TYPGO
2331: MOVNI TAC,10
2332: XCTR XW,[MOVEM TAC,JOBTM1]
2333: TTYMS4: MOVE IOS,DEVIOS(DDB)
2334: TDNE IOS,[XWD TTYDTC,IOSUPR]
2335: POPJ P,
2336: PUSHJ P,OUTCHR
2337: JUMPN CHR,TTYMS3
2338: XCTR XRW,[AOSLE JOBTM1]
2339: JRST TTYMS8
2340: PUSHJ P,TYPTST
2341: LDB TAC,PJOBN
2342: MOVE J,JOB(PID)
2343: CAMN TAC,J
2344: JRST TTYMSW
2345: MOVEI TAC,20
2346: PUSHJ P,SLEEPT
2347: TTYMSD: PUSHJ P,STLNAC
2348: XCTR XLB,[LDB CHR,UUO]
2349: JRST TTYMS4
2350:
2351: TTYMSW: PUSHJ P,DDTWAT
2352: JRST TTYMSD
2353:
2354: TTYMS8: SOS (P)
2355: POPJ P,
2356:
2357:
2358: TTYMS9: XCTR XRW,[SOSL CHR,JOBTM2]
2359: XCTR XLB,[ILDB CHR,UUO]
2360: JUMPLE CHR,CPOPJ
2361: PUSHJ P,DISTYO
2362: JRST TTYMS9
TTYSER page# 0039 next prev
2364:
2365:
2366:
2367:
2368:
2369:
2370:
2371: TTREAD: XCTR XR,[SKIPL TAC,(UUO)]
2372: CAIL TAC,TTPLEN
2373: HRRZ TAC,LINE
2374: SUBI TAC,DPYL0
2375: JUMPL TAC,CPOPJ
2376: CAIL TAC,DPYNUM+DDNUM
2377: POPJ P,
2378: TRO TAC,100
2379: MOVEI AC3,20
2380: TTRED1: DATAO DKB,TAC
2381: DATAI DKB,AC1
2382: TRNN AC1,1B22
2383: SOJG AC3,TTRED1
2384: HLRZ AC2,AC1
2385: CAIE AC2,-100(TAC)
2386: SOJG AC3,TTRED1
2387: TTRED3: XCTR XW,[MOVEM AC1,(UUO)]
2388: POPJ P,
2389:
2390:
2391:
2392:
2393:
2394:
2395:
2396: ↑TTYJNO:XCTR XR,[MOVE LINE,(UCHN)]
2397: JUMPL LINE,PTYJNO
2398: CAIGE LINE,TTPLEN
2399: SKIPN DDB,TTYTAB(LINE)
2400: JRST TTYJN1
2401: LDB TAC,PJOBN
2402: MOVE AC1,DEVMOD(DDB)
2403: TLNN AC1,TTYATC
2404: TLO TAC,400000
2405: CAIA
2406: TTYJN1: SETZ TAC,
2407: TTYJN0: XCTR XW,[MOVEM TAC,(UCHN)]
2408: POPJ P,
2409:
2410: PTYJNO: MOVM LINE,LINE
2411: CAIL LINE,TTPLEN
2412: JRST PTYJN1
2413: HRRE LINE,JBTLIN(J)
2414: JUMPL LINE,TTYJN1
2415: PTYJN1: HLL LINE,LINTAB(LINE)
2416: TLNN LINE,PTYLIN
2417: JRST TTYJN1
2418: MOVE TAC,PTYJOB-PTYL0(LINE)
2419: JRST TTYJN0
TTYSER page# 0040 next prev
2421:
2422:
2423:
2424:
2425:
2426:
2427: ↑SNEAKS:
2428: PUSHJ P,TTYFNU
2429: TLNE IOS,TPMON!TTYDTC
2430: POPJ P,
2431: MOVE AC2,TITAKR(DDB)
2432: CAME AC2,TIPUTR(DDB)
2433: JRST SNLOAD
2434: TLNE LINE,DISLIN!DDDLIN
2435: SKIPL AC1,LETAB-DPYL0(LINE)
2436: POPJ P,
2437: TLNE AC1,WTFLAG
2438: JRST SNEAKX
2439: SKIPG CCPOS(AC1)
2440: POPJ P,
2441: MOVE AC2,[POINT 7,LEBUF]
2442: ADDI AC2,(AC1)
2443: ILDB TAC,AC2
2444: JUMPE TAC,.-1
2445: JRST SNLD1
2446: SNLOAD: MOVE TAC,TITCTR(DDB)
2447: CAIG TAC,1
2448: HRR AC2,TTIBUF+BUF(DDB)
2449: ILDB TAC,AC2
2450: SNLD1: XCTR XW,[MOVEM TAC,(UCHN)]
2451: JRST CPOPJ1
2452:
2453: SNEAKX: PUSHJ P,WSCHED
2454: JRST SNEAKS
2455:
2456: ↑SNEAKW:
2457: PUSHJ P,SNEAKS
2458: CAIA
2459: POPJ P,
2460: MOVE IOS,[XWD TTYIOW!SNKWAT,IOACT]
2461: IORB IOS,DEVIOS(DDB)
2462: MOVSI IOS,DDTM
2463: ANDCAB IOS,DEVIOS(DDB)
2464: PUSHJ P,TWSYNC
2465: JRST SNEAKW
2466:
2467:
2468:
2469:
2470: ↑ACTCHR:PUSHJ P,TTYFNU
2471: CAME LINE,[-1]
2472: TLNN LINE,DDDLIN!DISLIN
2473: JRST RTZERO
2474: MOVEI UUO,0
2475: PUSHJ P,IWAIT
2476: MOVE CHR,LETAB-DPYL0(LINE)
2477: LDB CHR,[POINT 9,GWORD(CHR),35]
2478: XCTR XW,[MOVEM CHR,(UCHN)]
2479: POPJ P,
TTYSER page# 0041 next prev
2481:
2482: IFN FTDDTM,<
2483:
2484:
2485:
2486:
2487:
2488:
2489: ↑DDTIN: PUSHJ P,TTYFNU
2490: DDTINA: MOVE IOS,[XWD TTYIOW+DDTM,IOACT]
2491: IORB IOS,DEVIOS(DDB)
2492: TLNN IOS,TPMON
2493: JRST DDTINB
2494: PUSHJ P,TWSYNC
2495: JRST DDTINA
2496: DDTINB: TLNE LINE,DDDLIN!DISLIN
2497: PUSHJ P,INCHGB
2498: PUSHJ P,PTICHK
2499: MOVE TAC,TIPUTR(DDB)
2500: CAMN TAC,TITAKR(DDB)
2501: PUSHJ P,TWSYNC
2502: DDTIW: MOVE IOS,[XWD TTYIOW+DDTM,IOACT]
2503: ANDCAB IOS,DEVIOS(DDB)
2504: MOVSI TAC,IOFST
2505: IORM TAC,DEVIOS(DDB)
2506: MOVSI AC2,440700
2507: HRR AC2,@UUO
2508: MOVE LINE,TIPUTR(DDB)
2509: MOVEI DAT,TTIBUF(DDB)
2510: MOVEI AC1,<21*5>-1
2511: XFRIN: PUSHJ P,GETCHY
2512: XFRIN1: CAIN CHR,600
2513: JRST XFRIN0
2514: XCTR XDB,[IDPB CHR,AC2]
2515: CAME LINE,TITAKR(DDB)
2516: SOJG AC1,XFRIN
2517: XFRIN2: MOVEI CHR,0
2518: XCTR XDB,[IDPB CHR,AC2]
2519: UNSUPR: MOVEI IOS,IOSUPR
2520: ANDCAB IOS,DEVIOS(DDB)
2521: POPJ P,
2522:
2523: XFRIN0: MOVE CHR,DEVMOD(DDB)
2524: TLNN CHR,TTYATC
2525: TRNN CHR,ASSCON!ASSPRG
2526: JRST DDTCNC
2527: JRST XFRIN
2528:
2529: DDTCNC: PUSHJ P,STLNAC
2530: PUSHJ P,XFRIN2
2531: JRST MONUS6
2532: >
TTYSER page# 0042 next prev
2534:
2535: IFN FTDDTM,<
2536:
2537:
2538:
2539: ↑DDTOUT:
2540: PUSHJ P,TTYFNU
2541: MOVE UUO,@UUO
2542: >
2543:
2544: DDT5: HRLI UUO,440700
2545: DDT3: MOVE IOS,DEVIOS(DDB)
2546: TDNE IOS,[XWD TTYDTC,IOSUPR]
2547: POPJ P,
2548: XCTR XLB,[ILDB CHR,UUO]
2549: JUMPE CHR,TYPGO
2550: PUSHJ P,OUTCHR
2551: JUMPN CHR,DDT3
2552: ADD UUO,[XWD 070000,0]
2553: PUSHJ P,TYPGO
2554: PUSHJ P,DDTWAT
2555: JRST DDT3
2556:
2557: ↑DDTWAT:MOVEI TAC,TTOCHR
2558: DPB TAC,PFITCH
2559: MOVSI TAC,TTYIOW
2560: ANDCAM TAC,DEVIOS(DDB)
2561: MOVEI IOS,IOACT
2562: IORB IOS,DEVIOS(DDB)
2563: JRST WSYNC
TTYSER page# 0043 next prev
2565:
2566:
2567:
2568:
2569:
2570: JRST TTYINI
2571: JRST CPOPJ1
2572: ↑SCNDSP:
2573: JRST TTYREL
2574: JRST OUT
2575: JRST TTYOUT
2576:
2577: TTYIN: MOVE IOS,[XWD TTYIOW,IOACT]
2578: IORB IOS,DEVIOS(DDB)
2579: TLNE IOS,TTYDTC
2580: JRST TTYIN2
2581: MOVSI TAC,TTYATC
2582: TDNE TAC,DEVMOD(DDB)
2583: TLNN IOS,TPMON
2584: JRST TTYIN3
2585: TTYIN2: PUSHJ P,TWSYNC
2586: JRST TTYIN
2587:
2588: TTYIN3: PUSHJ P,PTICHK
2589: MOVSI IOS,DDTM+TPMON
2590: ANDCAB IOS,DEVIOS(DDB)
2591: PUSHJ P,STLNAC
2592: TTYIN1: SKIPG TISYNC(DDB)
2593: PUSHJ P,TWSYNC
2594: PUSHJ P,MONUSR
2595: MOVE IOS,[XWD TTYIOW!DDTM,IOSUPR!MERTPO!MERTP1!IOACT]
2596: T0POPJ: ANDCAB IOS,DEVIOS(DDB)
2597: POPJ P,
2598:
2599:
2600: ↑TTYSKP:CAMG UCHN,USRHCU
2601: SKIPN DDB,USRJDA(UCHN)
2602: JRST IOIERR
2603: MOVE TAC,DEVMOD(DDB)
2604: TLNN TAC,DVTTY
2605: POPJ P,
2606: MOVE IOS,DEVIOS(DDB)
2607: TLNN IOS,TTYDTC
2608: SKIPG TISYNC(DDB)
2609: POPJ P,
2610: TLNE TAC,TTYATC
2611: TLNN IOS,TPMON
2612: AOS (P)
2613: POPJ P,
2614:
2615:
2616:
2617: TWSYNC: TLNN LINE,PTYLIN
2618: JRST TWSYN1
2619: PUSH P,J
2620: MOVE J,PTYJOB-PTYL0(LINE)
2621: MOVSI AC1,INTPTI
2622: TDNE AC1,JBTIEN(J)
2623: PUSHJ P,TTINT
2624: POP P,J
2625: MOVE CHR,DEVIOS(DDB)
2626: TLNN CHR,TTYIOW
2627: JRST TWS2
2628: TWSYN1: PUSHJ P,WSYNC
2629: TWS2: MOVE IOS,[XWD TTYIOW+DDTM,IOACT]
2630: ANDCAB IOS,DEVIOS(DDB)
2631: POPJ P,
2632:
TTYSER page# 0044 next prev
2634:
2635:
2636:
2637:
2638: MONUSR: HRRZ TAC,DEVIAD(DDB)
2639: PUSHJ P,BUFCLR
2640: JRST ADRERR
2641: PUSHJ P,STLNAC
2642: MOVEI AC2,TTICHR
2643: HRRZ AC1,DEVIAD(DDB)
2644: ADD AC1,[XWD 10700,1]
2645: MOVEI DAT,TTIBUF(DDB)
2646:
2647: MONUS1: PUSHJ P,GETCHY
2648: LDB TAC,[POINT 7,CHR,35]
2649: MOVE TAC,SPCTAB(TAC)
2650: JUMPE CHR,MONUS3
2651: CAIE CHR,3B28!12
2652: JRST MONUS9
2653: MOVSI IOS,IOEND
2654: IORB IOS,DEVIOS(DDB)
2655: JRST MONUS3
2656:
2657: MONUS9: XCTR XDB,[IDPB CHR,AC1]
2658: TLNN TAC,FCSBRK!BREAKB
2659: MONUS2: SOJG AC2,MONUS1
2660: CAIN CHR,600
2661: JRST MONUS7
2662:
2663: MONUS3: HRRZ AC2,DEVIAD(DDB)
2664: SUBI AC1,1(AC2)
2665: XCTR XRW,[HRRM AC1,1(AC2)]
2666:
2667: MONUS4: PUSHJ P,ADVBFF
2668: JRST MONUS5
2669: JUMPG AC2,MONUS5
2670: SKIPLE TISYNC(DDB)
2671: JRST MONUS8
2672:
2673: MONUS5: MOVSI IOS,IOFST
2674: IORB IOS,DEVIOS(DDB)
2675: TLZE IOS,TTYIOW
2676: PUSHJ P,SETIOD
2677: POPJ P,0
2678:
2679: MONUS6: PUSHJ P,CNCMOD
2680: MOVSI TAC,110000
2681: ADDM TAC,TITAKR(DDB)
2682: AOS TITCTR(DDB)
2683: SOS TIFCTR(DDB)
2684: PUSHJ P,SYNCHK
2685: PUSHJ P,COMSET
2686: JRST WSYNC
2687:
2688: MONUS7: MOVE CHR,DEVMOD(DDB)
2689: TLNN CHR,TTYATC
2690: TRNN CHR,ASSCON!ASSPRG
2691: CAIA
2692: JRST MONUS3
2693: MOVE IOS,[XWD TTYIOW,IOACT]
2694: IORB IOS,DEVIOS(DDB)
2695: PUSHJ P,MONUS6
2696: JRST TTYIN
2697:
2698: MONUS8: TLNN IOS,IOEND
2699: JRST MONUSR
2700: POPJ P,
TTYSER page# 0045 next prev
2702:
2703:
2704:
2705: TTYOUT: MOVSI IOS,IOBEG
2706: TDNE IOS,DEVIOS(DDB)
2707: TRO IOS,IOSUPR
2708: IOR IOS,[XWD DDTM,MERTPO!MERTP1!IOACT]
2709: ANDCAM IOS,DEVIOS(DDB)
2710: MOVSI IOS,IO+IOFST
2711: IORB IOS,DEVIOS(DDB)
2712:
2713:
2714: TLNN IOS,TTYDTC
2715: PUSHJ P,STLNAC
2716: PUSH P,LINE
2717: TDNN IOS,[XWD TTYDTC,IOSUPR]
2718: PUSHJ P,USRMON
2719: PUSHJ P,ADVBFE
2720: SKIPA
2721: TDZA IOS,IOS
2722: MOVEI IOS,IOACT
2723: ANDCAB IOS,DEVIOS(DDB)
2724: POP P,LINE
2725: PUSHJ P,TYPGO
2726: TRNE IOS,IOACT
2727: JRST TTYOUT
2728: POPJ P,
2729:
TTYSER page# 0046 next prev
2731:
2732:
2733:
2734:
2735: USRMON: HRRZ AC2,DEVOAD(DDB)
2736: XCTR XR,[HRRZ AC2,1(AC2)]
2737: IMULI AC2,5
2738:
2739: USRMN1: HRRZ AC1,DEVOAD(DDB)
2740: ADD AC1,[XWD 10700,1]
2741:
2742: USRMN2: XCTR XLB,[ILDB CHR,AC1]
2743: USRMN4: JUMPE CHR,USRMN5
2744: PUSHJ P,OUTCHR
2745: JUMPE CHR,USRMN3
2746:
2747: USRMN5: SOJG AC2,USRMN2
2748: DPB AC2,PFITCH
2749: POPJ P,
2750:
2751: USRMN3: PUSH P,AC2
2752: CAILE AC2,777
2753: MOVEI AC2,777
2754: DPB AC2,PFITCH
2755: PUSH P,AC1
2756: MOVE LINE,-3(P)
2757: PUSHJ P,TTOUWS
2758: POP P,AC1
2759: POP P,AC2
2760: MOVE IOS,DEVIOS(DDB)
2761: XCTR XLB,[LDB CHR,AC1]
2762: TRNN IOS,IOSUPR
2763: JRST USRMN4
2764: POPJ P,
2765:
2766: TTOUWS: MOVEI IOS,IOACT
2767: IORB IOS,DEVIOS(DDB)
2768: PUSHJ P,TYPGO
2769: JRST WSYNC
TTYSER page# 0047 next prev
2771:
2772:
2773:
2774:
2775: SCNIN1:
2776: DATAI DCSA,LINE
2777: CONO DCSA,4000+FSNCHN
2778:
2779: JRST XMTINT
2780:
2781:
2782:
2783: SCNTYP: CONO PI,SCNOFF
2784:
2785: CONO DCSB,(LINE)
2786: DATAO DCSA,CHR
2787: CONO PI,SCNON
2788: SKIPE DDB
2789: DPB CHR,PLASTC
2790: POPJ P,
2791:
2792:
2793: IFN FTOIKB, {
2794: ↑KBDINT:
2795: JSR SCNSAV
2796: DATAI KBD,CHR
2797: LDB LINE,[POINT 4,CHR,17]
2798: LDB UCHN,[POINT 2,CHR,9]
2799: TLZ CHR,777577
2800: CAIN CHR,2
2801: POPJ P,
2802: ADDI LINE,DPYL0
2803: CAIN CHR,1
2804: MOVEI CHR,174
2805: CAIN CHR,177
2806: MOVEI CHR,136
2807: HRRZ DSER,CHR
2808: TLZE CHR,200
2809: HRRZ CHR,SHFTBL(CHR)
2810: HRRZ CHR,CONVTB(CHR)
2811: CAIE CHR,600
2812: DPB UCHN,[POINT 2,CHR,28]
2813: KBDIN1: CAIN CHR,213
2814: MOVEI CHR,10042
2815: CAIN CHR,212
2816: MOVEI CHR,10044
2817: CAIN CHR,412
2818: MOVEI CHR,10000
2819: JRST RECINA
2820:
TTYSER page# 0048 next prev
2822:
2823: SHFTBL: 0↔ 174 ↔0↔0↔22↔177↔0↔0
2824: 0↔11↔12↔13↔14↔15↔0↔0
2825: 0↔20↔0↔0↔0↔0↔24↔0
2826: 32↔0↔0↔0↔0↔0↔0↔23
2827: 40↔1↔0↔0↔0↔0↔0↔0
2828: 173↔175↔0↔176↔77↔25↔46↔17
2829: 2↔3↔6↔7↔10↔44↔52↔100
2830: 42↔47↔33↔134↔34↔36↔35↔0
2831: REPEAT 30,<0>
2832: 0↔0↔0↔31↔16↔27↔136↔43
2833: 45
2834: XXZ←←101
2835: REPEAT 32,<XXZ
2836: XXZ←←XXZ+1>
2837: 0↔174↔0↔0↔136
2838:
2839: ↑CONVTB: XWD 0,600
2840: XXZ←←1
2841: REPEAT 27,<XWD XXZ,XXZ
2842: XXZ←←XXZ+1>
2843: XWD 137,137
2844: XWD 31,31
2845: XWD 134,136
2846: XXZ←←33
2847: REPEAT 45,<XWD XXZ,XXZ
2848: XXZ←←XXZ+1>
2849: XWD 140,140
2850: XXZ←←101
2851: REPEAT 33,<XWD XXZ,XXZ
2852: XXZ←←XXZ+1>
2853: XWD 177,32
2854: XWD 135,135
2855: XWD 32,177
2856: XWD 30,30
2857: XWD 100,100
2858: XXZ←←141
2859: REPEAT 33,<XWD XXZ,XXZ
2860: XXZ←←XXZ+1>
2861: XWD 176,175
2862: XWD 174,176
2863: XWD 175,174
2864: XWD 136,134 }
TTYSER page# 0049 next prev
2866:
2867:
2868: ↑DKBINT:MOVEM CHR,DKBCHR
2869: DATAI DKB,CHR
2870: TRNE CHR,1B23
2871: TRNE CHR,1B22
2872: JRST DKBLUZ
2873: EXCH CHR,DKBCHR
2874: JSR SCNSAV
2875: IFN FTHG, < PUSHJ P,HG >
2876: DATAI CHR
2877: JUMPGE CHR,.+2
2878: DATAO PI,DKBCHR
2879: MOVE CHR,DKBCHR
2880: HLRZ LINE,CHR
2881: ANDI CHR,1777
2882: CAIL LINE,DPYNUM+DDNUM
2883: POPJ P,
2884: ADDI LINE,DPYL0
2885: TRC CHR,1700
2886: MOVEI AC2,(CHR)
2887: LDB TAC,[POINT 2,CHR,29]
2888: LDB UCHN,[POINT 2,CHR,27]
2889: ANDI CHR,77
2890: CAIE CHR,41
2891: CAIN CHR,42
2892: JRST DKBSPC
2893: CAIN CHR,44
2894: JRST DKBSPC
2895: LDB DAT,DKBBYT(TAC)
2896: ANDCMI TAC,1
2897: LDB DSER,DKBBYT(TAC)
2898: MOVEI CHR,(DAT)
2899: CAIE CHR,600
2900: DPB UCHN,[POINT 2,CHR,28]
2901: TRZA DSER,600
2902: DKBSPC: TRO CHR,10000
2903: JRST RECINA
2904:
2905: DKBLUZ: EXCH CHR,DKBCHR
2906: DATAO PI,DKBCHR
2907: JRST 12,@CH5
2908:
2909:
2910: DKBBYT: POINT 9,DKBTBL(CHR),8
2911: POINT 9,DKBTBL(CHR),17
2912: POINT 9,DKBTBL(CHR),26
2913: POINT 9,DKBTBL(CHR),35
TTYSER page# 0050 next prev
2915:
2916: DEFINE DKBCHR(A,B)<
2917: BYTE(9)<"A">+40,<"A">,<"B">,<"B">
2918: >
2919:
2920:
2921:
2922:
2923: DKBTBL: 0
2924: DKBCHR A,≤
2925: DKBCHR B,π
2926: DKBCHR C,ε
2927: BYTE(9) "d","D",74,74
2928: BYTE(9) "e","E",100,100
2929: BYTE(9) "f","F",76,76
2930: DKBCHR G,≠
2931: DKBCHR H,=
2932: DKBCHR I,'
2933: BYTE(9) "j","J",137,137
2934: DKBCHR K,<→>
2935: DKBCHR L,<↔>
2936: DKBCHR M,∃
2937: DKBCHR N,∀
2938: BYTE(9) "o","O",173,173
2939: BYTE(9) "p","P",176,176
2940: DKBCHR Q,∧
2941: DKBCHR R,#
2942: DKBCHR S,≥
2943: DKBCHR T,&
2944: BYTE(9) "u","U",140,140
2945: DKBCHR V,λ
2946: DKBCHR W,∨
2947: DKBCHR X,β
2948: BYTE(9) <"y">,<"Y">,42,42
2949: DKBCHR Z,α
2950:
2951: DEFINE DKBCHR(A,B)<
2952: BYTE(9)<"A">,<"A">,<"B">,<"B">
2953: >
2954:
2955: BYTE(9) 15,15,15,15
2956: DKBCHR <\>,∞
2957: BYTE(9) 12,12,12,12
2958: 0
2959: 0
2960: BYTE(9) 40,40,40,40
2961: 0
2962: 0
2963: BYTE(9) 600,600,600,600
2964: 0
2965: BYTE(9) 11,11,11,11
2966: BYTE(9) 14,14,14,14
2967: BYTE(9) 13,13,13,13
2968: DKBCHR <(>,[
2969: DKBCHR <)>,<]>
2970: DKBCHR *,⊗
2971: DKBCHR +,|
2972: DKBCHR <,>,!
2973: DKBCHR -,¬
2974: DKBCHR .,?
2975: DKBCHR /,∂
2976: DKBCHR 0,0
2977: DKBCHR 1,≡
2978: DKBCHR 2,∩
2979: DKBCHR 3,∪
2980: DKBCHR 4,⊂
2981: DKBCHR 5,⊃
2982: DKBCHR 6,$
2983: DKBCHR 7,%
2984: BYTE(9) <"8">,<"8">,32,32
2985: BYTE(9) <"9">,<"9">,30,30
2986: DKBCHR :,↓
2987: DKBCHR <
2988: BYTE(9) 177,177,177,177
2989: BYTE(9) 175,175,175,175
2990: 0
2991: 0
TTYSER page# 0051 next prev
2993:
2994:
2995:
2996: ↑SCNINT:
2997: JSR SCNSAV
2998: CONSO DCSA,10
2999: JRST SCNIN1
3000: CONI DCSB,LINE
3001: DATAI DCSB, CHR
3002: CAIL LINE,SCNNUM
3003: POPJ P,
3004: CAIN LINE,APLINE
3005: LSH CHR,-2
3006: JRST RECINT
TTYSER page# 0052 next prev
3008:
3009:
3010:
3011: ↑CTYINT:
3012: JSR SCNSAV
3013: MOVEI LINE,TCONLN
3014: CONSO TTY,40
3015: JRST CTYOU1
3016: DATAI TTY,CHR
3017: IFE 0,<
3018: JRST RECINT
3019: >
3020: IFN 0,<
3021: MOVEI LINE,26
3022: ANDI CHR,177
3023: CAIN CHR,1
3024: JRST CTYFOO
3025: MOVE UCHN,CTYFO1#
3026: SETZM CTYFO1
3027: MOVE DSER,CHR
3028: DPB UCHN,[POINT 2,CHR,28]
3029: JRST KBDIN1
3030:
3031: CTYFOO: AOS CTYFO1
3032: POPJ P,
3033: >
3034:
3035: CTYOU1: CONO TTY,200+SCNCHN
3036: JRST XMTINT
3037:
3038:
3039:
TTYSER page# 0053 next prev
3041:
3042:
3043:
3044:
3045: ↑RECINT:
3046: MOVEI UCHN,0
3047: RECINA: HLL LINE,LINTAB(LINE)
3048: MOVE TAC,LINTAB(LINE)
3049: PTYREC: JUMPE CHR,CPOPJ
3050: TRNE CHR,10000
3051: JRST SETESC
3052: NOESC: TRNE TAC,REGESC+SPCESC
3053: JRST DOESC
3054:
3055: ESCRET: HLL LINE,LINTAB(LINE)
3056: TLNN LINE,CTYLIN
3057: SKIPN TTYLOK
3058: JRST NOLOCK
3059: MOVSI DDB,400000
3060: MOVNI LINE,(LINE)
3061: LSH DDB,(LINE)
3062: DATAI APR,LINE
3063: TDNN DDB,LINE
3064: POPJ P,
3065: NOLOCK: LDB LINE,[PUNITS⊗6,,TAC]
3066: SKIPE DDB,TTYTAB(LINE)
3067: JRST RECIN1
3068: CAIE LINE,IMSSS
3069: CAIN LINE,APLINE
3070: POPJ P,
3071: PUSH P,AC1
3072: PUSHJ P,DDBSRC
3073: JRST TYPX
3074: POP P,AC1
3075: RECIN1: HLL LINE,LINTAB(LINE)
3076: RECIN8:
3077: IFN FTTALK,< CAIN CHR,10044
3078: JRST RECINZ
3079: TLNE LINE,TLKRNG
3080: JRST DOTALK
3081: RECINZ:
3082: >
3083: MOVE IOS,DEVIOS(DDB)
3084: TLNE LINE,DDDLIN!DISLIN
3085: JRST KBDED
3086: RECIN2: TLNE LINE,IMLIN
3087: JRST RECIML
3088: RECIM2: ANDI CHR,177
3089:
3090: TLNE IOS,TPMON
3091: JRST NOSPMD
3092: LDB TAC,PIOMOD
3093: CAIE TAC,10
3094: CAIN TAC,11
3095: JRST [ TLZ IOS,IMLTTY
3096: TLNE IOS,TTYHLD
3097: PUSHJ P,TTYUNH
3098: MOVEI DAT,TTIBUF(DDB)
3099: PUSHJ P,PUTCHI
3100: JFCL
3101: MOVE DAT,FCTR(DAT)
3102: CAIE TAC,10
3103: CAIG DAT,TTICHR/2
3104: TLOA IOS,DDTM
3105: JRST SNKTST
3106: JRST RECIN4]
3107: NOSPMD:
3108:
3109: CAIE CHR,0
3110: RECINC: CAIN CHR,3
3111: RECINB: PUSHJ P,CNCTST
3112: TLNE LINE,IMLIN
3113: JRST RECIM3
3114: TLNN LINE,PTYLIN
3115: CAIE CHR,176
3116: CAIN CHR,33
3117: MOVEI CHR,175
3118: RECIM3: LDB HPOS,PHPOS
3119: MOVEI DAT,TTIBUF(DDB)
3120: PUSHJ P,TTEDIT
3121: TLNN IOS,TPMON
3122: TLNN LINE,PTYLIN
3123: JRST RECIN5
3124: JUMPE UCHN,RECIN5
3125: MOVE TAC,ACTMOD(DDB)
3126: TRNE TAC,SUPSCM
3127: CAIE UCHN,3
3128: TRNN TAC,SUPBTS
3129: TLO IOS,SYNC
3130: RECIN5: TRNN IOS,NOECHO
3131: DPB HPOS,PHPOS
3132: TLNE IOS,TTYHLD
3133: CAMN TAC,SPCTAB+2
3134: CAIA
3135: PUSHJ P,TTYUNH
3136: HLLM LINE,LINTAB(LINE)
3137: MOVE TAC,TIFCTR(DDB)
3138: CAIG TAC,12
3139: JRST RWARN
3140: TLNN IOS,SYNC!DDTM
3141: JRST SNKTST
3142: TLNN IOS,SYNC
3143: JRST RECIN4
TTYSER page# 0054 next prev
3145:
3146:
3147: RECIN3: MOVSI TAC,COMBIT
3148: TDNN TAC,TTYTAB(LINE)
3149: PUSHJ P,COMSET
3150: RECIN4: MOVEI DAT,TTIBUF(DDB)
3151: TLZE IOS,SYNC!DDTM
3152: PUSHJ P,SYNCHA
3153:
3154: MOVEM IOS,DEVIOS(DDB)
3155: MOVE TAC,TIPCTR(DDB)
3156: DPB TAC,PLSTLC
3157: TLNE IOS,TPMON
3158: JRST TYPTST
3159: LDB J,PJOBN
3160: MOVSI AC1,INTTTY
3161: TDNE AC1,JBTIEN(J)
3162: PUSHJ P,TTINT
3163: TLZN IOS,TTYIOW
3164: JRST TYPTST
3165: SNKWAK: PUSHJ P,STTIOD
3166: PUSHJ P,STXTIM
3167: MOVSI IOS,IOW!TTYIOW!SNKWAT
3168: ANDCAB IOS,DEVIOS(DDB)
3169: ↑UTYPET:
3170: TYPTST: TLNE IOS,TTYDTC
3171: JRST TYPT1
3172: PUSHJ P,STLNAC
3173: TLNE LINE,PTYLIN
3174: JRST PTOCK
3175: MOVSI IOS,TOIP
3176: CONO PI,SCNOFF
3177: TDNE IOS,DEVIOS(DDB)
3178: JRST TYPT1
3179: IORB IOS,DEVIOS(DDB)
3180: CONO PI,SCNON
3181: TLNN IOS,TTYDTC
3182: JRST XMTIN1
3183: TYPT1: CONO PI,SCNON
3184: POPJ P,
3185:
3186: SNKTST: TLNN IOS,SNKWAT
3187: JRST TYPTST
3188: JRST SNKWAK
3189:
3190: ↑TYPGO: MOVE IOS,DEVIOS(DDB)
3191: TDNE IOS,[XWD TTYDTC,IOSUPR]
3192: JRST TYPT1
3193: PUSHJ P,STLNAC
3194: MOVSI IOS,IO
3195: TLNN LINE,PTYLIN
3196: CONO PI,SCNOFF
3197: IORB IOS,DEVIOS(DDB)
3198: JRST TYPTST
3199:
3200: RWARN: TLO IOS,DDTM
3201: TLNE LINE,FULTWX!PTYLIN!DISLIN!IMLIN
3202: JRST RECIN3
3203: MOVEI CHR,23
3204: PUSHJ P,PUTCHO
3205: MOVEI CHR,IDLECH
3206: PUSHJ P,PUTCHO
3207: JRST RECIN3
3208:
3209: TTINT: IORM AC1,JBTIRQ(J)
3210: SETOM INTREQ(PID)
3211: HLLOS CLKFLG(PID)
3212: CONO PI,1B24!1⊗(7-CLKCHN)
3213: POPJ P,
3214:
3215: STXTIM: LDB J,PJOBN
3216: ↑STXTM2:
3217: JUMPE J,CPOPJ
3218: SKIPGE XTIME(J)
3219: POPJ P,
3220: MOVE TAC,TTIME(J)
3221: MOVEM TAC,XTIME(J)
3222: SKIPGE TAC,JBTWAT(J)
3223: ADD TAC,UPTIME
3224: MOVEM TAC,JB2WAT(J)
3225: HRLS DSKOPS(J)
3226: POPJ P,
TTYSER page# 0055 next prev
3228:
3229:
3230:
3231:
3232: REGESC←←400000
3233: SPCESC←←200000
3234: ESCNEG←←100000
3235:
3236: ESCTYP←←200200
3237: ESCARG←←PUNITS⊗14+<17-PUNITS>⊗6
3238: ESCFLD←←PUNITS⊗14+<22-PUNITS>⊗6
3239: ESCNUL←←ESCNEG⊗-PUNITS-1
3240: ESCMAX←←ESCNUL-1
TTYSER page# 0056 next prev
3242:
3243:
3244:
3245:
3246: SETESC: CAIN CHR,10044
3247: JRST NOESC
3248: MOVEI AC3,
3249: CAIN CHR,10042
3250: MOVEI AC3,REGESC⊗-PUNITS+ESCNUL
3251: CAIN CHR,10041
3252: JRST [ CAIE UCHN,1
3253: MOVEI AC3,<REGESC+ESCNEG>⊗-PUNITS+ESCNUL
3254: JRST .+1]
3255: CAIN AC2,1641
3256: MOVEI AC3,SPCESC⊗-PUNITS+ESCNUL
3257: DPB AC3,[ESCFLD,,LINTAB(LINE)]
3258: JUMPN AC3,CPOPJ
3259: HLRE AC1,CHR
3260: JUMPLE AC1,.+2
3261: ANDI AC1,ESCNUL
3262: JUMPN AC1,.+2
3263: MOVEI AC1,ESCNUL
3264: TRNE CHR,4000
3265: MOVN AC1,AC1
3266: STDESC: CAIN DSER,"a"
3267: JRST VDESCA
3268: CAIN DSER,"d"
3269: JRST VDESCD
3270: CAIN DSER,"s"
3271: JRST VDESCS
3272: CAIN DSER,"t"
3273: JRST VDESCT
3274: CAIN DSER,"u"
3275: JRST ASESC
3276: CAIN DSER,"b"
3277: JRST ESCB
3278: STDES2: TRO CHR,10000
3279: CAIN AC1,ESCNUL
3280: MOVEI AC1,
3281: JUMPGE AC1,ESCRET
3282: MOVN AC1,AC1
3283: CAIN AC1,ESCNUL
3284: MOVEI AC1,
3285: HRLI AC1,400000
3286: JRST ESCRET
3287:
3288:
3289:
3290:
3291: ESCOCS: AOS (P)
3292: ESCOCT: IDIVI AC1,=100
3293: IDIVI AC2,=10
3294: LSH AC2,3
3295: ADD AC2,AC3
3296: LSH AC1,6
3297: ADD AC1,AC2
3298: POPJ P,
TTYSER page# 0057 next prev
3300:
3301:
3302:
3303:
3304: DOESC: LDB AC1,[ESCARG,,TAC]
3305: LDB AC2,[ESCTYP,,TAC]
3306: CAIE AC2,1
3307: JRST .+3
3308: CAIE UCHN,3
3309: SOJA AC2,ESCXIT
3310: CAIL DSER,"0"
3311: CAILE DSER,"9"
3312: JRST DOESC1
3313: CAIN AC1,ESCNUL
3314: TDZA AC1,AC1
3315: IMULI AC1,12
3316: ADDI AC1,-"0"(DSER)
3317: CAILE AC1,ESCMAX
3318: MOVEI AC1,ESCMAX
3319: DPB AC1,[ESCARG,,LINTAB(LINE)]
3320: POPJ P,
3321:
3322: DOESC1: CAIN DSER,"-"
3323: JRST DOESCN
3324: TRNE TAC,ESCNEG
3325: MOVN AC1,AC1
3326: ESCXIT: ANDI TAC,1⊗PUNITS-1
3327: HRRM TAC,LINTAB(LINE)
3328: JRST @ESCDSP(AC2)
3329:
3330: ESCDSP: ESCRET
3331: SPESC
3332: STDESC
3333:
3334: DOESCN: MOVEI TAC,ESCNEG
3335: XORM TAC,LINTAB(LINE)
3336: POPJ P,
TTYSER page# 0058 next prev
3338:
3339: SPESC: TLO TAC,200000
3340: IFN FTDDT,<
3341: CAIN CHR,600
3342: CAIE UCHN,3
3343: CAIA
3344: JRST DDTCAL
3345: >
3346: CAIE CHR,600-40(DSER)
3347: JRST ESCRET
3348: CAIN CHR,600+"L"
3349: JRST SPESCL
3350: CAIE CHR,600+"M"
3351: JRST STDESC
3352: PUSHJ P,ESCOCT
3353: CAIL AC1,TTPLEN
3354: MOVEI AC1,(LINE)
3355: HRRM AC1,LINTAB(LINE)
3356: POPJ P,
3357:
3358: SPESCL: MOVE TAC,LINE
3359: MOVE AC2,LINTAB(TAC)
3360: TLNN AC2,DDDLIN
3361: POPJ P,
3362: SUBI TAC,DDL0
3363: PUSHJ P,ESCOCT
3364: CAIL AC1,DDL0
3365: CAIL AC1,DDL0+DDNUM
3366: POPJ P,
3367: SKIPN AC2,LETAB-DPYL0(AC1)
3368: SKIPA AC3,VDMAP-DDL0(AC1)
3369: MOVE AC3,VDTMP(AC2)
3370: PUSHJ P,VDSTR
3371: MOVEM AC3,VDTMP(AC2)
3372: JRST VDOUT
TTYSER page# 0059 next prev
3374:
3375:
3376:
3377: VDESCA: PUSHJ P,VDESTV
3378: PUSHJ P,VDECHK
3379: PUSHJ P,VDVCHK
3380: DPB AC1,[400,,VDTMP(AC2)]
3381: PUSHJ P,VDSTRB
3382: IORM AC3,VDTMP(AC2)
3383: JRST VDOUT
3384:
3385:
3386: VDESCN: PUSHJ P,VDNORM
3387: JRST VDOUT
3388:
3389:
3390: VDESCD: PUSHJ P,VDESET
3391: POPJ P,
3392: PUSHJ P,VDBIT
3393: CAIL AC1,40
3394: MOVEI AC3,17
3395: PUSHJ P,VDSTR
3396: ANDCAM AC3,VDTMP(AC2)
3397: JRST VDOUT
3398:
3399:
3400: VDESCS: PUSHJ P,VDESTV
3401: PUSHJ P,VDECHK
3402: PUSHJ P,VDVCHK
3403: MOVEM AC1,VDTMP(AC2)
3404: PUSHJ P,VDSTRB
3405: MOVEM AC3,VDTMP(AC2)
3406: JRST VDOUT
3407:
3408:
3409: VDESCT: PUSHJ P,VDESTV
3410: PUSHJ P,VDECHK
3411: TRZN AC1,-40
3412: JRST VDESC2
3413: ANDI AC1,7
3414: SKIPA AC3,VDSYNC(AC1)
3415: VDESC2: PUSHJ P,VDBIT
3416: SKIPE AC2,LETAB+DPYNUM(TAC)
3417: MOVEM AC3,VDTMP(AC2)
3418: JRST VDOUT
3419:
3420: VDESTV: JUMPGE AC1,CPOPJ
3421: CAME AC1,[-ESCNUL]
3422: POPJ P,
3423: PUSH P,AC1
3424: PUSH P,TAC
3425: HRRZI AC1,ASTVC
3426: PUSHJ P,ASESC
3427: POP P,TAC
3428: POP P,AC1
3429: POPJ P,
TTYSER page# 0060 next prev
3431:
3432:
3433:
3434: VDESET: HRRI TAC,-DDL0(LINE)
3435: MOVE AC2,LINTAB+DDL0(TAC)
3436: TLNN AC2,DDDLIN
3437: JRST VDEST4
3438: JUMPL AC1,VDEST3
3439: CAIE AC1,ESCNUL
3440: JRST ESCOCS
3441: MOVEI AC1,-DDL0(AC2)
3442: TLO TAC,200000
3443: VDEST2: SKIPN AC2,LETAB+DPYNUM(AC1)
3444: SKIPA AC1,AVLCHN
3445: HLRZ AC1,PRGNUM(AC2)
3446: JRST CPOPJ1
3447:
3448: VDEST3: MOVN AC1,AC1
3449: CAIN AC1,ESCNUL
3450: JRST VDEST1
3451: PUSHJ P,ESCOCT
3452: SUBI AC1,DDL0
3453: CAIGE AC1,DDNUM
3454: JUMPGE AC1,VDEST2
3455: POPJ P,
3456:
3457: VDEST1: MOVEI AC1,45
3458: JRST CPOPJ1
3459:
3460: VDEST4: TLNE AC2,DISLIN
3461: SKIPN LETAB+DPYNUM(TAC)
3462: POPJ P,
3463: JUMPL AC1,CPOPJ
3464: HRROI TAC,(TAC)
3465: CAIN AC1,ESCNUL
3466: SKIPA AC1,[-4,,]
3467: PUSHJ P,ESCOCT
3468: TRNN AC1,-20
3469: AOS (P)
3470: POPJ P,
3471:
3472:
3473: VDECHK: PUSHJ P,VDESET
3474: JRST TPOPJ
3475: TLNE TAC,200000
3476: POPJ P,
3477: CAIGE AC1,40
3478: SKIPL DDTAB(AC1)
3479: POPJ P,
3480: MOVEI AC3,(TAC)
3481: MOVEI J,
3482: PUSHJ P,VDCCHK
3483: SUB P,[1,,1]
3484: POPJ P,
3485:
3486:
3487: VDVCHK: TRZN AC1,-40
3488: JRST CPOPJ1
3489: ANDI AC1,7
3490: IOR AC1,VDSYNC(AC1)
3491: PUSHJ P,VDSTR
3492: XCT @-1(P)
3493: SUB P,[1,,1]
3494: JRST VDOUT
TTYSER page# 0061 next prev
3496:
3497:
3498:
3499:
3500:
3501:
3502:
3503:
3504:
3505:
3506: ASHANG←←400000
3507: ASHGBP←←430100
3508:
3509: ASTEMP←←200000
3510:
3511: ASPAGN←←100000
3512:
3513: ASDBEP←←40000
3514:
3515: ASPPUN←←20000
3516: ASPPUP←←370100
3517:
3518: ASPBUN←←10000
3519: ASPBUP←←360100
3520:
3521: ASBPDP←←340200
3522:
3523: ASPGDP←←320200
3524:
3525: ASTMPP←←260400
3526: ASTMPM←←360
3527:
3528: ASPRMP←←220400
3529: ASPRMM←←17
3530:
3531:
3532:
3533:
3534:
3535:
3536:
3537:
3538:
3539: ASPAGC←←0
3540: ASTVC←←1
3541: ASBEPC←←5
3542: ASBPTM←←3
3543:
3544:
3545: ASESC: HRREI TAC,-DPYL0(LINE)
3546: JUMPL TAC,CPOPJ
3547: CAIL TAC,DPYNUM+DDNUM
3548: POPJ P,
3549: MOVEI DSER,0
3550: JUMPGE AC1,ASESC1
3551: MOVN AC1,AC1
3552: MOVEI DSER,ASPPUN
3553: ASESC1: CAIN AC1,ESCNUL
3554: MOVEI AC1,ASPAGC⊗-3*=10+ASPAGC&7
3555: PUSHJ P,ESCOCT
3556: ASSEL: LDB AC3,[ASHGBP,,ASTAB(TAC)]
3557: IORI AC1,(DSER)
3558: HRLZM AC1,ASTAB(TAC)
3559: SETZM ASBTAB(TAC)
3560: HRLI AC1,(TAC)
3561: DATAO AS,AC1
3562: JUMPN AC3,ASUNHG
3563: POPJ P,
3564:
3565:
3566: ↑ASSCN: CONO PK,0
3567: MOVSI TAC,-<DPYNUM+DDNUM>
3568: MOVEI TAC1,-1
3569: ASSCNL: TDNE TAC1,ASBTAB(TAC)
3570: JRST ASSCB
3571: TDNN TAC1,ASTAB(TAC)
3572: JRST ASSCLN
3573: MOVE AC1,ASTAB(TAC)
3574: LDB AC2,[ASPGDP,,AC1]
3575: TLNN AC1,ASPAGN
3576: JRST ASSCN1
3577: CAIN AC2,2
3578: JRST ASSCLN
3579: ASSCN1: SOS AC1,ASTAB(TAC)
3580: TRNN AC1,-1
3581: JRST ASSCTO
3582: ASSCLN: AOBJN TAC,ASSCNL
3583: CONO PK,PKCHN
3584: POPJ P,
3585:
3586:
3587: ASSCB: SOS AC1,ASBTAB(TAC)
3588: MOVE AC2,ASTAB(TAC)
3589: TLNN AC2,ASTEMP
3590: JRST ASSCB1
3591: LDB AC2,[ASBPDP,,AC2]
3592: TDNE TAC1,ASTAB(TAC)
3593: CAIN AC2,2
3594: JRST ASSCB1
3595: SOS AC2,ASTAB(TAC)
3596: TRNN AC2,-1
3597: TLZ AC2,ASTEMP
3598: MOVEM AC2,ASTAB(TAC)
3599: ASSCB1: TRNE AC1,-1
3600: JRST ASSCLN
3601: ASRVRT: MOVE AC1,ASTAB(TAC)
3602: TLZE AC1,ASDBEP
3603: JRST ASRVR1
3604: TLNE AC1,ASTEMP
3605: JRST ASRVR3
3606: TLNE AC1,ASHANG
3607: PUSHJ P,ASUNHG
3608: LDB AC2,[ASPRMP,,AC1]
3609: ASRVR2: HRLI AC2,(TAC)
3610: DATAO AS,AC2
3611: JRST ASSCLN
3612:
3613: ASRVR3: LDB AC2,[ASTMPP,,AC1]
3614: JRST ASRVR2
3615:
3616: ASRVR1: MOVEM AC1,ASTAB(TAC)
3617: MOVEI AC2,ASBPTM
3618: MOVEM AC2,ASBTAB(TAC)
3619: MOVEI AC2,ASBEPC
3620: JRST ASRVR2
3621:
3622: ASSCTO: TLZ AC1,ASTEMP
3623: TLNE AC1,ASPAGN
3624: JRST ASSCT2
3625: TLZE AC1,ASDBEP
3626: JRST ASRVR1
3627: MOVEM AC1,ASTAB(TAC)
3628: TLNE AC1,ASHANG
3629: PUSHJ P,ASUNHG
3630: ASSCT1: LDB AC2,[ASPRMP,,AC1]
3631: JRST ASRVR2
3632:
3633: ASSCT2: MOVEM AC1,ASTAB(TAC)
3634: JRST ASSCLN
3635:
3636:
3637: ASUNHG: PUSH P,DDB
3638: PUSH P,J
3639: MOVSI J,ASHANG
3640: ANDCAM J,ASTAB(TAC)
3641: HRRZ DDB,TTYTAB+DPYL0(TAC)
3642: JUMPE DDB,ASUNHR
3643: MOVSI J,TTYATC
3644: TDNN J,DEVMOD(DDB)
3645: JRST ASUNHR
3646: LDB J,PJOBN
3647: MOVM DDB,JOBQUE(J)
3648: CAIE DDB,IOWQ
3649: JRST ASUNHR
3650: MOVEI DDB,RUNQ
3651: MOVNM DDB,JOBQUE(J)
3652: PUSHJ P,REQUE
3653: ASUNHR: POP P,J
3654: POP P,DDB
3655: POPJ P,
3656:
3657: ESCB: HRREI AC2,-DPYL0(LINE)
3658: JUMPL AC2,CPOPJ
3659: CAIL AC2,DDNUM+DPYNUM
3660: POPJ P,
3661: MOVSI TAC,ASPBUN
3662: JUMPL AC1,ESCB1
3663: ANDCAM TAC,ASTAB(AC2)
3664: POPJ P,
3665:
3666: ESCB1: IORM TAC,ASTAB(AC2)
3667: POPJ P,
TTYSER page# 0062 next prev
3669:
3670:
3671: ↑PKCHN←←5
3672: ↑PKINTB←←10
3673: ↑PKPAGE←←20
3674: ↑PKSET←←10
3675: ↑PKCLR←←20
3676:
3677: ↑PKINT: JSR PKSAV
3678: CONO PK,PKCLR!PKCHN
3679: MOVSI TAC,-<DPYNUM+DDNUM>
3680: CONSO PK,PKPAGE
3681: JRST PKINND
3682: SETOM PAGNOW
3683: MOVEI TAC1,-1
3684: PKINL: MOVEI DSER,0
3685: TDNE TAC1,ASBTAB(TAC)
3686: MOVNI DSER,1
3687: MOVE AC1,ASTAB(TAC)
3688: TLNN AC1,ASTEMP
3689: JRST PKINP
3690: LDB AC2,[ASPGDP,,AC1]
3691: CAIN AC2,1
3692: JRST PKINLA
3693: PKINLB: JUMPE DSER,PKINL1
3694: HLLZM ASBTAB(TAC)
3695: TLO AC1,ASDBEP
3696: PKINL1: TLO AC1,ASPAGN
3697: MOVEM AC1,ASTAB(TAC)
3698: MOVEI AC2,ASPAGC
3699: HRLI AC2,(TAC)
3700: DATAO AS,AC2
3701: PKINLA: AOBJN TAC,PKINL
3702: POPJ P,
3703:
3704:
3705: PKINP: TLNE AC1,ASPPUN
3706: JRST PKINLA
3707: JRST PKINLB
3708:
3709:
3710: PKINND: SETZM PAGNOW
3711: MOVE AC1,ASTAB(TAC)
3712: TLZN AC1,ASPAGN
3713: JRST PKINNA
3714: TLZN AC1,ASDBEP
3715: JRST PKINN1
3716: MOVEI AC2,ASBPTM
3717: MOVEM AC2,ASBTAB(TAC)
3718: MOVEI AC2,ASBEPC
3719: PKINN2: MOVEM AC1,ASTAB(TAC)
3720: HRLI AC2,(TAC)
3721: DATAO AS,AC2
3722: PKINNA: AOBJN TAC,PKINND
3723: POPJ P,
3724:
3725:
3726: PKINN1: TLNN AC1,ASTEMP
3727: JRST PKINNP
3728: LDB AC2,[ASTMPP,,AC1]
3729: JRST PKINN2
3730:
3731:
3732: PKINNP: TLZE AC1,ASHANG
3733: PUSHJ P,ASUNHG
3734: LDB AC2,[ASPRMP,,AC1]
3735: JRST PKINN2
TTYSER page# 0063 next prev
3737:
3738:
3739:
3740:
3741:
3742:
3743:
3744:
3745:
3746:
3747:
3748:
3749:
3750:
3751:
3752:
3753:
3754:
3755:
3756:
3757:
3758:
3759:
3760:
3761:
3762:
3763:
3764:
3765:
3766:
3767:
3768:
3769:
3770:
3771:
3772:
3773:
3774: ↑ADSMAP: HRRE AC1,JBTLIN(J)
3775: JUMPL AC1,CPOPJ
3776: SUBI AC1,DPYL0
3777: JUMPL AC1,CPOPJ
3778: CAIL AC1,DPYNUM+DDNUM
3779: POPJ P,
3780: MOVE AC2,TAC
3781: AOJE AC2,ADSRE2
3782: TLNN TAC,200000
3783: JRST ADSMRD
3784: CONO PI,SCNOFF
3785: TLNN TAC,140000
3786: PUSHJ P,ADSMWT
3787: JUMPL TAC,ADSMT
3788: ADSRE1: HLRZ TAC,TAC
3789: MOVEI AC2,0
3790: DPB TAC,[ASPRMP,,AC2]
3791: MOVSI AC3,ASDBEP
3792: TDNE AC3,ASTAB(AC1)
3793: IOR AC2,AC3
3794: LDB AC3,[000400,,TAC]
3795: TRNN TAC,4000
3796: JRST [ PUSHJ P,ADSMP1
3797: JRST .+2]
3798: TLO AC2,ASPPUN
3799: TRNN TAC,1000
3800: JRST [ PUSHJ P,ADSMP2
3801: JRST ADSMP4]
3802: TLO AC2,ASPBUN
3803: TLZ AC2,ASDBEP
3804: SETZM ASBTAB(AC1)
3805: ADSMP4: MOVEM AC2,ASTAB(AC1)
3806: HRLI AC3,(AC1)
3807: DATAO AS,AC3
3808: TRNN TAC,400000
3809: JRST ADSSCZ
3810: TRNN TAC,20000
3811: PUSHJ P,ADSMWT
3812: ADSSCZ: CONO PI,SCNON
3813: POPJ P,
3814:
3815:
3816: ADSMP1: SKIPN PAGNOW
3817: POPJ P,
3818: TLO AC2,ASPAGN
3819: MOVEI AC3,ASPAGC
3820: HRRZ DSER,ASBTAB(AC1)
3821: JUMPE DSER,CPOPJ
3822: TLO AC2,ASDBEP
3823: SETZM ASBTAB(AC1)
3824: POPJ P,
3825:
3826:
3827: ADSMP2: TLNE AC2,ASDBEP
3828: JRST ADSMP5
3829: HRRZ DSER,ASBTAB(AC1)
3830: JUMPE DSER,CPOPJ
3831: MOVEI AC3,ASBEPC
3832: POPJ P,
3833: ADSMP5: TLNE AC2,ASPAGN
3834: POPJ P,
3835: TLZ AC2,ASDBEP
3836: MOVEI AC3,ASBPTM
3837: MOVEM AC3,ASBTAB(AC1)
3838: MOVEI AC3,ASBEPC
3839: POPJ P,
3840:
3841:
3842: ADSMT: MOVE AC2,ASTAB(AC1)
3843: TRNE AC2,-1
3844: TLNE TAC,100000
3845: JRST ADSMT1
3846: JRST ADSSCZ
3847: ADSMT1: MOVS TAC,TAC
3848: LDB AC3,[000400,,TAC]
3849: DPB AC3,[ASTMPP,,AC2]
3850: LDB TAC1,[130200,,TAC]
3851: CAIN TAC1,3
3852: MOVEI TAC1,1
3853: DPB TAC1,[ASPGDP,,AC2]
3854: LDB TAC1,[110200,,TAC]
3855: DPB TAC1,[ASBPDP,,AC2]
3856: TRNN TAC,400
3857: PUSHJ P,ADSMP1
3858: ADSMT3: CAIN TAC1,3
3859: JRST ADSMT4
3860: CAIE TAC1,1
3861: JRST [ PUSHJ P,ADSMP2
3862: JRST ADSMT6]
3863: TLZ AC2,ASDBEP
3864: SETZM ASBTAB(AC1)
3865: ADSMT6: HLR AC2,TAC
3866: TLO AC2,ASTEMP
3867: JRST ADSMP4
3868:
3869:
3870: ADSMT4: HRRZ DSER,ASBTAB(AC1)
3871: JUMPE DSER,ADSMT6
3872: TLO AC2,ASDBEP
3873: SETZM ASBTAB(AC1)
3874: JRST ADSMT6
3875:
3876:
3877: ADSMWT: CONO PI,SCNOFF
3878: MOVE AC2,ASTAB(AC1)
3879: TLNE AC2,ASHANG
3880: JRST ADSMW1
3881: MOVEI AC3,-1
3882: TDNN AC3,ASBTAB(AC1)
3883: TLNE AC2,ASPAGN
3884: JRST ADSMW1
3885: TRNN AC2,-1
3886: POPJ P,
3887: ADSMW1: TLO AC2,ASHANG
3888: MOVEM AC2,ASTAB(AC1)
3889: MOVEI AC2,IOWQ
3890: MOVNM AC2,JOBQUE(J)
3891: CONO PI,SCNON
3892: PUSHJ P,WSCHED
3893: JRST ADSMWT
3894:
3895:
3896: ADSMRD: CONO PI,SCNOFF
3897: MOVE AC2,PAGNOW
3898: HRRZ AC3,ASBTAB(AC1)
3899: MOVE TAC1,ASTAB(AC1)
3900: CONO PI,SCNON
3901: HRR TAC,TAC1
3902: TLZ TAC,177777
3903: TLNE TAC1,ASTEMP
3904: TLO TAC,400
3905: JUMPE AC2,.+2
3906: TLO TAC,200
3907: TLNE TAC1,ASPAGN
3908: TLO TAC,100
3909: JUMPE AC3,.+2
3910: TLO TAC,40
3911: TLNE TAC1,ASDBEP
3912: TLO TAC,20
3913: JUMPGE TAC,ADSMR1
3914: LDB AC2,[ASTMPP,,TAC1]
3915: LDB AC3,[ASBPDP,,TAC1]
3916: LDB TAC1,[ASPGDP,,TAC1]
3917: ADSMR2: LSH TAC1,2
3918: IOR TAC1,AC3
3919: LSH TAC1,9
3920: IORI TAC1,200000(AC2)
3921: TSO TAC,TAC1
3922: JRST STOTAC
3923:
3924: ADSMR1: LDB AC2,[ASPRMP,,TAC1]
3925: LDB AC3,[ASPBUP,,TAC1]
3926: LDB TAC1,[ASPPUP,,TAC1]
3927: JRST ADSMR2
3928:
3929:
3930:
3931: ↑BEEP: JUMPGE TAC,BEEP1
3932: HRRE TAC,JBTLIN(J)
3933: JUMPL TAC,CPOPJ
3934: BEEP1: ANDI TAC,177
3935: SUBI TAC,DPYL0
3936: JUMPL TAC,BEEPND
3937: CAIL TAC,DPYNUM+DDNUM
3938: JRST BEEPND
3939: CONO PI,SCNOFF
3940: MOVE AC1,ASTAB(TAC)
3941: LDB AC2,[ASBPDP,,AC1]
3942: TLNN AC1,ASTEMP
3943: LDB AC2,[ASPBUP,,AC1]
3944: TRNE AC2,1
3945: JRST BEEPU
3946: TLNN AC1,ASPAGN
3947: JRST BEEPNP
3948: BEEPDX: TLO AC1,ASDBEP
3949: MOVEM AC1,ASTAB(TAC)
3950: BEEPX: CONO PI,SCNON
3951: POPJ P,
3952:
3953: BEEPNP: MOVEI AC2,ASBPTM
3954: MOVEM AC2,ASBTAB(TAC)
3955: MOVEI AC3,ASBEPC
3956: HRLI AC3,(TAC)
3957: DATAO AS,AC3
3958: JRST BEEPX
3959:
3960: BEEPU: TLNE AC1,ASTEMP
3961: CAIN AC2,1
3962: JRST BEEPX
3963: JRST BEEPDX
3964:
3965: BEEPND: MOVEI LINE,DPYL0(TAC)
3966: PUSHJ P,GETDBA
3967: POPJ P,
3968: MOVEI CHR,7
3969: PUSHJ P,OUTCHR
3970: JRST TYPTST
3971:
3972:
3973:
3974: ↑ADSRES: HRRE AC1,JBTLIN(J)
3975: JUMPL AC1,CPOPJ
3976: SUBI AC1,DPYL0
3977: JUMPL AC1,CPOPJ
3978: CAIL AC1,DPYNUM+DDNUM
3979: POPJ P,
3980: ADSRE2: MOVEI TAC,0
3981: CONO PI,SCNOFF
3982: LDB AC2,[ASPPUP,,ASTAB(AC1)]
3983: DPB AC2,[POINT 1,TAC,6]
3984: LDB AC2,[ASPBUP,,ASTAB(AC1)]
3985: DPB AC2,[POINT 1,TAC,8]
3986: LDB AC2,[ASPRMP,,ASTAB(AC1)]
3987: DPB AC2,[POINT 4,TAC,17]
3988: TLO TAC,360000
3989: JRST ADSRE1
TTYSER page# 0064 next prev
3991:
3992:
3993:
3994: RECIML: TLZE IOS,IMLTTY
3995: JRST RECIM1
3996:
3997: TRNN CHR,200
3998: JRST RECIM2
3999:
4000: TLO IOS,IMLTTY
4001: CAIL CHR,241
4002: CAILE CHR,243
4003: JRST RECIM2
4004:
4005: DPB CHR,[POINT 2,IMLHAC(DDB),34]
4006: MOVEM IOS,DEVIOS(DDB)
4007: POPJ P,
4008:
4009: RECIM1: LDB UCHN,[POINT 2,IMLHAC(DDB),34]
4010: JRST RECIM2
TTYSER page# 0065 next prev
4012:
4013:
4014:
4015: TYPX: SUB P,[1,,1]
4016: ANDI CHR,177
4017: CAIN CHR,"X"
4018: POPJ P,
4019: MOVEI CHR,"X"
4020: JRST TYPL
4021:
4022:
4023:
4024: ↑COMSET:TLNN IOS,TTYDTC
4025: TLNN IOS,TPMON
4026: POPJ P,
4027: MOVE TAC,DEVMOD(DDB)
4028: TLNN TAC,TTYATC
4029: TRNN TAC,ASSCON!ASSPRG
4030: JRST .+2
4031: POPJ P,
4032: MOVSI IOS,IOFST
4033: IORB IOS,DEVIOS(DDB)
4034: MOVSI TAC,COMBIT
4035: TDNN TAC,TTYTAB(LINE)
4036: AOS COMCNT
4037: IORM TAC,TTYTAB(LINE)
4038: IFN FTTTYBUG,<
4039: PUSHJ P,COMBCK
4040: PUSHJ P,CNTCOM
4041: >
4042: POPJ P,
TTYSER page# 0066 next prev
4044:
4045:
4046:
4047:
4048:
4049:
4050:
4051:
4052:
4053:
4054:
4055:
4056:
4057:
4058:
4059:
4060:
4061:
4062:
4063:
4064:
4065:
4066:
4067: TTEDIT: PUSHJ P,ADJHP
4068: JFCL
4069: TLNE LINE,IMLIN
4070: JRST [ TLZE IOS,IMLTTY
4071: JRST TTEDT0
4072: CAIN CHR,177
4073: JUMPE UCHN,TTEDT2
4074: TLNN TAC,IMLCHR
4075: TLNN TAC,ALLSPA
4076: TLZ TAC,ALLSPA!SPACTN!ECHSUP!SPHPOS
4077: JRST TTEDT2]
4078: TTEDT2: TLNE LINE,SPCBRK
4079: TLNE IOS,TPMON
4080: JRST TTEDT0
4081: PUSH P,TAC
4082: PUSHJ P,SPCACT
4083: TLO IOS,SYNC
4084: POP P,TAC
4085: TLNN TAC,ALLSPA
4086: TLNN IOS,SYNC
4087: CAIA
4088: TLZ TAC,SPACTN
4089: JRST TTEDT1
4090: TTEDT0: TLNE TAC,BREAKB!FCSBRK
4091: TLO IOS,SYNC
4092: TTEDT1: MOVEM IOS,DEVIOS(DDB)
4093: JUMPL TAC,(TAC)
4094: TIPACK: CAIG CHR,"z"
4095: CAIGE CHR,"a"
4096: JRST TTIPUT
TTYSER page# 0067 next prev
4098:
4099:
4100: TLNN LINE,FCS
4101: TRZ CHR,40
4102: TTIPUT: TLZE LINE,ROBTPD
4103: PUSHJ P,BSECHO
4104: TTIPT1: DPB UCHN,[POINT 2,CHR,28]
4105: TTPT2: PUSHJ P,PUTCHI
4106: JRST INBFUL
4107: TLNN TAC,ECHSUP
4108: DUPLEX: TLNE LINE,FULTWX
4109: JUMPE UCHN,CPOPJ
4110: DUPLX1: TLNN IOS,TPMON
4111: TRNN IOS,NOECHO
4112: JRST DUPIML
4113: POPJ P,0
4114:
4115: INBFUL: CAIN CHR,600
4116: JRST CNCTS1
4117: MOVEI CHR,7
4118: JRST PUTCHO
4119:
4120: DUPIML: JUMPE UCHN,PUTCHO
4121: TRNN IOS,NOECHB
4122: TLNN LINE,IMLIN
4123: JRST PUTCHO
4124: PUSH P,CHR
4125: TRNN UCHN,1
4126: JRST DUPIM2
4127: MOVEI CHR,177
4128: PUSHJ P,PUTCHO
4129: MOVEI CHR,13
4130: PUSHJ P,PUTCHO
4131: TRNN UCHN,2
4132: JRST DUPIM3
4133: DUPIM2: MOVEI CHR,177
4134: PUSHJ P,PUTCHO
4135: MOVEI CHR,14
4136: PUSHJ P,PUTCHO
4137: DUPIM3: POP P,CHR
4138: JRST PUTCHO
TTYSER page# 0068 next prev
4140:
4141:
4142:
4143:
4144:
4145: CONTC: PUSHJ P,DELETL
4146: TLNN LINE,DDDLIN!DISLIN
4147: JRST .+3
4148: JUMPG UCHN,.+2
4149: PUSHJ P,CNCTS1
4150: MOVE TAC,SPCTAB
4151: PUSHJ P,TTPT2
4152: MOVEI CHR,3
4153: PUSHJ P,CNTLEC
4154: JRST CRLFEC
4155:
4156: CONTZ: PUSHJ P,CNTLEC
4157: PUSHJ P,CRLFEC
4158: MOVEI CHR,3B28!12
4159: TLO IOS,SYNC
4160: JRST TTPT2
4161:
4162: CONTOB: MOVEI CHR,"O"-100
4163: CONTO: PUSHJ P,SETBF2
4164: MOVEI IOS,IOSUPR
4165: XORB IOS,DEVIOS(DDB)
4166: JRST CONTU1
4167:
4168: CONTU: TLNE IOS,DDTM
4169: JRST TTIPUT
4170: TLZ LINE,ROBTPD
4171: PUSHJ P,DELETL
4172: CONTU1: PUSHJ P,CNTLEC
4173: JRST CRLFEC
4174:
4175:
4176: ALTMOD:
4177: HRRI TAC,(CHR)
4178: TLNN LINE,IMLIN
4179: MOVEI CHR,44
4180: PUSHJ P,AOJDPX
4181: MOVEI CHR,(TAC)
4182: JRST TTIPUT
4183:
4184:
4185:
4186:
4187:
4188:
4189: CONTB1: TLCA LINE,FULTWX
4190: CONTF: TLC LINE,FCS
4191: POPJ P,
4192:
4193: CONTB: TLNE LINE,DISLIN!DDDLIN!PTYLIN
4194: JRST CONTB1
4195: TLNE LINE,TLKRNG
4196: POPJ P,
4197: TTYUNH: TLCE IOS,TTYHLD
4198: TLZ IOS,TOIP
4199: MOVEM IOS,DEVIOS(DDB)
4200: POPJ P,
4201:
4202:
TTYSER page# 0069 next prev
4204:
4205: RUBOU4: MOVSI IOS,SYNC
4206: JRST T0POPJ
4207: RUBOUT:
4208:
4209: RUBOU3: TLNE IOS,TPMON
4210: JRST RUBOU2
4211: TDNE IOS,[XWD DDTM,BKSP]
4212: JRST TTIPT1
4213: RUBOU2: PUSHJ P,RUBOU4
4214: LDB CHR,PUTR(DAT)
4215: PUSHJ P,DCPUTR
4216: JRST RUBOU1
4217: TLON LINE,ROBTPD
4218: PUSHJ P,BSECHO
4219: AOJDPX: AOJA HPOS,DUPLX1
4220:
4221: RUBOU1: TLZE LINE,ROBTPD
4222: PUSHJ P,BSECHO
4223: JRST CRLFEC
4224:
4225: CONTK: HRRI TAC,4
4226: SKIPA
4227: CONTL: HRRI TAC,10
4228: TLNN LINE,PTYLIN
4229: JRST SIMFF
4230:
4231:
4232: JRST TTIPUT
4233: CONTI1: MOVEI CHR,1
4234: SIMFF1: PUSHJ P,DUPLX1
4235: TRNE TAC,17
4236: SOJA TAC,.-2
4237: POPJ P,0
4238:
TTYSER page# 0070 next prev
4240:
4241: SIMFF: TLO TAC,ECHSUP
4242: PUSHJ P,TTIPUT
4243: MOVEI CHR,12
4244: JRST SIMFF1
4245:
4246: CONTI: TLNE LINE,DISLIN!PTYLIN!DDDLIN!IMLIN
4247: JRST TTIPUT
4248: LDB HPOS,PHPOS
4249: ANDI HPOS,7
4250: CAIE HPOS,7
4251: TLNE LINE,TBXPND
4252: TLO TAC,ECHSUP
4253: PUSHJ P,TTIPUT
4254: TLNE LINE,TBXPND
4255: JRST CONTI2
4256: LDB CHR,PHPOS
4257: ANDI CHR,7
4258: MOVEI TAC,1
4259: XCT (CHR)[ AOJA TAC,CONTI1
4260: JRST CONTI1
4261: JRST CONTI1
4262: JRST CONTI1
4263: JRST CONTI1
4264: POPJ P,
4265: POPJ P,
4266: JFCL ]
4267: CONTI2: MOVEI CHR,40
4268: LDB HPOS,PHPOS
4269: PUSHJ P,AOJDPX
4270: TRNE HPOS,7
4271: JRST .-2
4272: POPJ P,0
4273:
4274: CONTP: MOVE TAC,LINBIT(LINE)
4275: TLNE TAC,TBXPND
4276: JRST NCONTP
4277: TLC LINE,TBXPND
4278: POPJ P,
4279:
4280: NCONTP: SETZ TAC,
4281: JRST TTIPUT
TTYSER page# 0071 next prev
4283:
4284: CRLFEC: MOVEI HPOS,0
4285: PUSH P,CHR
4286: MOVEI CHR,15
4287: PUSHJ P,DUPLX1
4288: MOVEI CHR,12
4289: PUSHJ P,DUPLX1
4290: CHPOPJ: POP P,CHR
4291: POPJ P,0
4292:
4293: CNTLEC:
4294: HRRI TAC,100(CHR)
4295: MOVEI CHR,"↑"
4296: PUSHJ P,AOJDPX
4297: MOVEI CHR,(TAC)
4298: PUSHJ P,AOJDPX
4299: TRZ CHR,100
4300: POPJ P,0
4301:
4302: CRLF: MOVEI HPOS,0
4303: TLNE LINE,PTYLIN
4304: JRST CRLFIP
4305: TLNE IOS,TPMON
4306: JRST CRLFMM
4307: CRLFIP: TLNE LINE,XON
4308: JRST TTIPUT
4309: CRLFMM: PUSHJ P,TTIPUT
4310: MOVEI CHR,12
4311: MOVSI IOS,SYNC
4312: IORB IOS,DEVIOS(DDB)
4313: TLNN LINE,FULTWX
4314: JRST TTIPUT
4315: PUSHJ P,TTIPUT
4316: JRST DUPLX1
TTYSER page# 0072 next prev
4318:
4319: CNCTST:
4320: TLNE LINE,IMLIN
4321: TLZE IOS,IMLTTY
4322: CAIA
4323: POPJ P,
4324: MOVEI CHR,600
4325: IFN FTLOGIN,<
4326:
4327: LDB TAC,PJOBN
4328: MOVE TAC,JBTSTS(TAC)
4329:
4330: TLNE TAC,JACCT
4331: MOVEI CHR,33
4332:
4333:
4334:
4335:
4336:
4337:
4338:
4339: >
4340: LDB TAC,TIPUTR(DDB)
4341: CAIE TAC,600
4342: POPJ P,
4343: CNCTS1: PUSHJ P,SETBFI
4344:
4345: CNCMOD: MOVE IOS,[XWD DDTM!IO!USRB,IOSUPR!MERTPO!MERTP1]
4346: ANDCAM IOS,DEVIOS(DDB)
4347: MOVSI IOS,TPMON+IOFST
4348: IORB IOS,DEVIOS(DDB)
4349: POPJ P,
TTYSER page# 0073 next prev
4351:
4352:
4353:
4354: BSECHO: PUSH P,CHR
4355: MOVEI CHR,"\"
4356: PUSHJ P,AOJDPX
4357: JRST CHPOPJ
4358:
4359:
4360:
4361: ↑DCPUTR:
4362: LDB TAC,PLSTLC
4363: CAMN TAC,PCTR(DAT)
4364: POPJ P,
4365:
4366: MOVSI TAC,110000
4367: ADD TAC,PUTR(DAT)
4368: TLNE TAC,400000
4369: ADD TAC,[XWD 337777,-1]
4370: MOVEM TAC,PUTR(DAT)
4371: AOS FCTR(DAT)
4372: AOS TAC,PCTR(DAT)
4373: CAIG TAC,TTICHR
4374: JRST CPOPJ1
4375: SUBI TAC,TTICHR
4376: MOVEM TAC,PCTR(DAT)
4377: MOVEI TAC,STTIBF
4378: ADDM TAC,PUTR(DAT)
4379: JRST CPOPJ1
4380:
4381:
4382:
4383: DELETL: LDB TAC,PLSTLC
4384: MOVEM TAC,TIPCTR(DDB)
4385: PUSHJ P,TBYTEP
4386: MOVEM TAC,TIPUTR(DDB)
4387: JRST TRESC1
TTYSER page# 0074 next prev
4389:
4390: IFN FTTALK,<
4391: DOTALK: ANDI CHR,177
4392: SKIPN DDB,TTYTAB(LINE)
4393: POPJ P,0
4394: IFN FTTKBG,<
4395: HLRZ TAC,DDB ;BH 3/15/74 BUG TRAP FOR INCOMPLETE LOOP
4396: ANDI TAC,177 ;BH JUST THE LINE NUMBER
4397: SKIPN TTYTAB(TAC) ;BH TAC IS LINE # TALKER LINKED TO
4398: JRST DOTALX ;BH HIS DDB GONE ALTOGETHER (CAN'T HAPPEN...)
4399: HLRZ HPOS,TTYTAB(TAC);BH ELSE GET HIS LINK
4400: ANDI HPOS,177 ;BH JUST THE LINE NUMBER
4401: CAIN HPOS,(LINE) ;BH OK IF WE'RE ALL THE SAME
4402: JRST DOTALY ;BH
4403: CAIN HPOS,(TAC) ;BH COMPARE TO HIMSELF
4404: JRST DOTALX ;BH OOPS, THEY'RE THE SAME!
4405: >
4406: DOTALY: CAIE CHR,0
4407: CAIN CHR,3
4408: JRST NOTALK
4409: MOVE UUO,LINTAB(LINE)
4410: TLZ LINE,-1
4411: PUSH P,LINE
4412: DOTAL1: LDB LINE,PTALK
4413: HRRZ DDB,TTYTAB(LINE)
4414: CAMN LINE,(P)
4415: JRST DOTAL2
4416: JUMPE DDB,DOTAL1
4417: PUSH P,CHR
4418: PUSHJ P,PUTCHO
4419: MOVE CHR,(P)
4420: TLNN UUO,XON
4421: CAIE CHR,15
4422: JRST DOTAL3
4423: MOVEI CHR,12
4424: PUSHJ P,PUTCHO
4425: DOTAL3: MOVE IOS,DEVIOS(DDB)
4426: PUSHJ P,TYPTST
4427: POP P,CHR
4428: JRST DOTAL1
4429:
4430: DOTAL2: HLL LINE,LINTAB(LINE)
4431: MOVEM CHR,(P)
4432: TLNN LINE,FULTWX
4433: PUSHJ P,PUTCHO
4434: POP P,CHR
4435: CAIN CHR,15
4436: TLNE LINE,XON
4437: JRST TYPTST
4438: MOVEI CHR,12
4439: PUSHJ P,PUTCHO
4440: JRST TYPTST
4441:
4442:
4443:
4444:
4445:
4446:
4447:
4448:
4449: NOTALK: MOVEI HPOS,0(LINE)
4450: TLNE LINE,CTYLIN
4451: JRST NOTLKB
4452: LDB CHR,PTALK
4453: NOTAL1: LDB UUO,PTALK
4454: CAMN UUO,HPOS
4455: JRST NOTAL2
4456: MOVE LINE,UUO
4457: JRST NOTAL1
4458: NOTAL2: DPB CHR,PTALK
4459: CAIE CHR,(HPOS)
4460: CAIE CHR,(LINE)
4461: JRST NOTAL3
4462: NOTLKA: MOVSI CHR,TLKRNG
4463: ANDCAM CHR,LINTAB(LINE)
4464: MOVE DDB,TTYTAB(LINE)
4465: PUSH P,HPOS
4466: FOR X ε {↑←N} {
4467: MOVEI CHR,"X"
4468: PUSHJ P,PUTCHO
4469: }
4470: MOVE IOS,DEVIOS(DDB)
4471: PUSHJ P,TYPTST
4472: POP P,HPOS
4473: MOVE DDB,TTYTAB(HPOS)
4474: MOVE LINE,UUO
4475: CAIE LINE,(HPOS)
4476: JRST NOTLKC
4477: NOTAL3: MOVSI CHR,TLKRNG
4478: MOVE LINE,HPOS
4479: DPB HPOS,PTALK
4480: ANDCAM CHR,LINTAB(LINE)
4481: MOVEI CHR,600
4482: DPB CHR,TIPUTR(DDB)
4483: HLL LINE,LINTAB(LINE)
4484: TLNN LINE,DDDLIN!DISLIN
4485: MOVEI CHR,3
4486: JRST RECINA
4487:
4488: NOTLKB: LDB LINE,PTALK
4489: CAIN LINE,(HPOS)
4490: JRST NOTAL3
4491: NOTLKC: LDB UUO,PTALK
4492: DPB LINE,PTALK
4493: JRST NOTLKA
4494:
4495: IFN FTTKBG,<
4496: DOTALX: PUSHACS ;BH 3/15/74 BUG TRAP TO END OF PAGE
4497: PUSH P,TAC ;OFFENDING TALKEE
4498: PUSH P,DDB ;TALKER'S TTYTAB
4499: ANDI LINE,177 ;TALKER'S NUMBER
4500: PUSH P,LINE
4501: PUSHJ P,DISMES
4502: ASCIZ /INCOMPLETE LOOP AT DOTALK!!
4503: TALKER=/
4504: POP P,TAC
4505: PUSHJ P,DISOCT
4506: PUSHJ P,DISMES
4507: ASCIZ / DDB=/
4508: POP P,TAC
4509: PUSHJ P,DISOCT
4510: PUSHJ P,DISMES
4511: ASCIZ /
4512: TALKING TO /
4513: MOVE TAC,(P)
4514: PUSHJ P,DISOCT
4515: POP P,TAC
4516: SKIPE TTYTAB(TAC)
4517: JRST DOTLX1
4518: PUSHJ P,DISMES
4519: ASCIZ / WHO HAS NO DDB/
4520: JRST DOTLX2
4521: DOTLX1: PUSHJ P,DISMES
4522: ASCIZ / WHO IS LINKED TO HIMSELF/
4523: DOTLX2: PUSHJ P,DISMES
4524: ASCIZ /
4525: FIND A WIZARD, OR TYPE POPJ 3,$X
4526: /
4527: PUSHJ P,DISFLU
4528: POPACS
4529: PUSHJ P,DDTCAL
4530: DPB LINE,PTALK ;NOW FIX IT UP
4531: JRST NOTALK ;SMASH DOPEY RING!
4532: >
4533: >
TTYSER page# 0075 next prev
4535:
4536:
4537:
4538: ↑XMTINT:
4539: HLL LINE,LINTAB(LINE)
4540: SKIPN DDB,TTYTAB(LINE)
4541: POPJ P,
4542: MOVE IOS,DEVIOS(DDB)
4543:
4544: XMTIN1:
4545: LDB DAT,PDVTIM
4546: DPB DAT,PDVCNT
4547: MOVEI DAT,TTOBUF(DDB)
4548: TLNE LINE,DISLIN!DDDLIN
4549: JRST DPYSTR
4550: XMTI1A: CONO PI,SCNOFF
4551: MOVE TAC,TAKR(DAT)
4552: CAME TAC,PUTR(DAT)
4553: JRST XMTIN2
4554:
4555: TRNE IOS,MERTP1
4556: CAIE DAT,TTOBUF(DDB)
4557: JRST XMTIN4
4558: MOVEI DAT,TTIBUF(DDB)
4559: JRST XMTI1A
4560:
4561: DPYSTR:
4562: HRLI DAT,DPYTYP
4563: HRRI DAT,(LINE)
4564: JRST DPYTIM
4565:
4566: ↑DPYDON:MOVE IOS,DEVIOS(DSER)
4567: HRRZ DDB,DSER
4568: PUSHJ P,STLNAC
4569: TRNN IOS,MERTP1
4570: JRST XMTIN4
4571: CAIN DSER,-TTOBUF(DAT)
4572: JRST DPYERT
4573:
TTYSER page# 0076 next prev
4575:
4576:
4577:
4578: XMTIN4: MOVE IOS,[XWD TOIP,MERTPO!MERTP1]
4579: ANDCAB IOS,DEVIOS(DDB)
4580: CONO PI,SCNON
4581: MOVEI CHR,0
4582: LDB HPOS,PJOBN
4583: TLNN IOS,IO
4584: JRST LINDON
4585: MOVSI IOS,IO
4586: ANDCAB IOS,DEVIOS(DDB)
4587: TLNE LINE,TLKRNG
4588: JRST LINDON
4589: JUMPN HPOS,LINDON
4590: JRST TTYKIL
4591:
4592: XMTIN2: CONO PI,SCNON
4593: TLNE IOS,TTYHLD
4594: POPJ P,
4595: PUSHJ P,GETCHO
4596: JUMPE CHR,XMTIN1
4597: JUMPL IOS,TTYPE
4598: TRNN IOS,IOACT
4599: JRST TTYPE
4600: LDB HPOS,PFITCH
4601: CAIL HPOS,TTOCHR-50
4602: MOVEI HPOS,TTOCHR-50
4603: CAML HPOS,FCTR(DAT)
4604: JRST TTYPE
4605:
4606: LINDON: TLNE IOS,IOW
4607: TLNE IOS,TTYIOW
4608: JRST TTYPE
4609: PUSH P,LINE
4610: PUSHJ P,SETIOD
4611: POP P,LINE
4612: MOVE IOS,[XWD IOW,IOACT]
4613: ANDCAB IOS,DEVIOS(DDB)
4614:
4615: TTYPE: TLNN LINE,PTYLIN
4616: JUMPN CHR,TYPL
4617: POPJ P,
TTYSER page# 0077 next prev
4619:
4620:
4621:
4622:
4623:
4624:
4625: TYP:
4626: ↑TYPL: TLNE LINE,DISLIN!DDDLIN
4627: POPJ P,
4628: MOVE TAC,CHR
4629:
4630: IMULI TAC,200401
4631:
4632: AND TAC,[ 11111111]
4633: IMUL TAC,[ 11111111]
4634: TLNE TAC,10
4635: TRO CHR,200
4636: TLNN LINE,CTYLIN
4637: JRST SCNTYP
4638: CTYP: DATAO TTY,CHR
4639: DPB CHR,PLASTC
4640: POPJ P,
TTYSER page# 0078 next prev
4642:
4643: PTYGET:
4644: SKIPE TTYLOK
4645: POPJ P,
4646: MOVSI LINE,-PTYNUM
4647: MOVSI TAC,PTYLIN
4648: TDNE TAC,LINTAB+PTYL0(LINE)
4649: AOBJN LINE,.-1
4650: JUMPG LINE,CPOPJ
4651: ADDI LINE,PTYL0
4652: PUSHJ P,DDBSRC
4653: POPJ P,
4654: HRLI LINE,PTYLIN!PTYUSE!XON!FCS
4655:
4656: MOVEM LINE,LINTAB(LINE)
4657: MOVEM ITEM,PTYJOB-PTYL0(LINE)
4658: XCTR XW,[MOVEM LINE,(UUO)]
4659: JRST CPOPJ1
4660:
4661: PTOCK:
4662: MOVE AC1,TOTAKR(DDB)
4663: CAME AC1,TOPUTR(DDB)
4664: TLNN LINE,PTYUSE
4665: JRST SETBF3
4666: SKIPLE TAC,PTYPTR(DDB)
4667: JRST PTCHK2
4668: PUSH P,J
4669: MOVE J,PTYJOB-PTYL0(LINE)
4670: MOVSI AC1,INTPTO
4671: TDNE AC1,JBTIEN(J)
4672: PUSHJ P,TTINT
4673: POP P,J
4674: POPJ P,
4675:
4676: PTICHK: SKIPL TAC,PTYPTR(DDB)
4677: POPJ P,
4678: PTCHK2: SETZM PTYPTR(DDB)
4679: EXCH TAC,DDB
4680: PUSHJ P,SETIOD
4681: MOVSI AC1,IOW+TTYIOW
4682: ANDCAM AC1,DEVIOS(DDB)
4683: EXCH TAC,DDB
4684: PUSHJ P,STLNAC
4685: LDB J,PJOBN
4686: POPJ P,
4687:
4688: ↑PTYCLR:HRRE LINE,JBTLIN(ITEM)
4689: JUMPL LINE,PTYCL2
4690: MOVSI TAC,SPCBRK!XON!LERSEE
4691: HLL LINE,LINTAB(LINE)
4692: TLNE LINE,PTYLIN
4693: TLZ TAC,XON
4694: ANDCAM TAC,LINTAB(LINE)
4695: ANDCAM TAC,JBTLIN(ITEM)
4696: PUSHJ P,TTYSRC
4697: MOVSI TAC,STDTBL
4698: HRRI TAC,ACTBTS(DDB)
4699: BLT TAC,ACTMOD(DDB)
4700: MOVEI TAC,NOECHO!NOECHB
4701: ANDCAM TAC,DEVIOS(DDB)
4702: PTYCL2: MOVEI LINE,PTYL0
4703: PTYCL1: CAIL LINE,PTYL0+PTYNUM
4704: POPJ P,
4705: PUSH P,LINE
4706: PUSH P,ITEM
4707: PUSHJ P,PTYRL2
4708: POP P,ITEM
4709: POP P,LINE
4710: AOJA LINE,PTYCL1
TTYSER page# 0079 next prev
4712:
4713: ↑PTYUUO:
4714: JUMPE UCHN,PTYGET
4715: XCTR XR,[HRRZ TAC,(UUO)]
4716: TRZE TAC,400000
4717: JRST LINMAP
4718: CAIG TAC,TTPLEN
4719: CAILE UCHN,PTYXNO
4720: JRST UUOERR
4721: JUMPN TAC,PTYUU3
4722: HRRE TAC,JBTLIN(ITEM)
4723: JUMPL TAC,CPOPJ
4724: JRST PTYUU2
4725: PTYUU3: CAIL TAC,PTYL0
4726: CAME ITEM,PTYJOB-PTYL0(TAC)
4727: CAIN UCHN,PTRLCD
4728: PTYUU2: SKIPA LINE,LINTAB(TAC)
4729: JRST UUOERR
4730: HRRI LINE,(TAC)
4731: ADDI UUO,1
4732: HRLI UUO,(<POINT 36,0,35>)
4733: SKIPE DDB,TTYTAB(LINE)
4734: JRST PTYUU4
4735: PUSHJ P,DDBSRC
4736: JRST UUOERR
4737: PTYUU4: SKIPG PTYDIS(UCHN)
4738: TLNE LINE,PTYLIN
4739: JRST @PTYDIS(UCHN)
4740: JRST UUOERR
4741:
4742: LINMAP: CAILE TAC,TTPLEN
4743: JRST UUOERR
4744: MOVE AC1,JBTPRV(J)
4745: TLNE AC1,MESPRV
4746: JRST PTYUU2
4747: SKIPN DDB,TTYTAB(TAC)
4748: JRST UUOERR
4749: LDB AC1,PJOBN
4750: CAMN AC1,J
4751: JRST PTYUU2
4752: JRST UUOERR
4753:
4754: DEFINE UUOS{FOR X IN(PTYGET,<PTYREL,PTRLCD←←.-PTYDIS>,PTIFRE,<PTOCNT>
4755: ,<PTRD1S,400000>,<PTRD1W,400000>,PTWR1S,<PTWR1W>
4756: ,<PTRDS,400000>,PTWRS7,PTWRS9,<PTGETL,,GETLN1>
4757: ,<PTSETL,,SETLIN>,<PTLOAD,,PTLLED>,PTJOBX)}
4758:
4759: UUOMAC PTYDIS,PTYUUO
4760: PTYXNO←←UUOCNT-1
4761:
4762: PTOCNT: SKIPA CHR,TOFCTR(DDB)
4763: PTIFRE: SKIPA CHR,TIFCTR(DDB)
4764: SUBI CHR,TTOCHR-1
4765: SUBI CHR,1
4766: PTSTOR: XCTR XW,[MOVMM CHR,(UUO)]
4767: POPJ P,
TTYSER page# 0080 next prev
4769:
4770: PTYREL: TLNE LINE,PTYLIN
4771: PTYRL2: CAME ITEM,PTYJOB-PTYL0(LINE)
4772: POPJ P,
4773: SKIPN DDB,TTYTAB(LINE)
4774: JRST LINCLR
4775: PUSHJ P,XMTIN4
4776: PUSHJ P,TSETBF
4777: SETZM PTYJOB-PTYL0(LINE)
4778: MOVSI TAC,PTYUSE
4779: ANDCAM TAC,LINTAB(LINE)
4780: LDB J,PJOBN
4781: JUMPE J,.+2
4782: PUSHJ P,INTKILL
4783: MOVE UUO,[BYTE(7)3,3,"K",12,0]
4784: XCTR XW,[MOVEM UUO,JOBTM1]
4785: MOVE UUO,[POINT 7,JOBTM1]
4786: PUSHJ P,PTWR2
4787: POPJ P,
4788:
4789: PTRD1S: MOVE IOS,DEVIOS(DDB)
4790: PUSHJ P,XMTIN1
4791: XCTR XDB,[DPB CHR,UUO]
4792: JUMPE CHR,CPOPJ
4793: JRST CPOPJ1
4794:
4795: PTRD1W: PUSHJ P,PTRD1S
4796: SKIPA UCHN,DDB
4797: POPJ P,
4798: PUSHJ P,TTYGET
4799: HRRZM DDB,PTYPTR(UCHN)
4800: MOVSI IOS,IOW!TTYIOW!DDTM
4801: TLNE LINE,PTYWAK
4802: IORM IOS,DEVIOS(DDB)
4803: PUSHJ P,PTWAIT
4804: SETZM PTYPTR(DDB)
4805: PUSHJ P,PTRD1S
4806: POPJ P,
4807: POPJ P,
4808:
4809: PTWAIT: MOVEI TAC,IOWQ
4810: MOVNM TAC,JOBQUE(J)
4811: MOVE DDB,UCHN
4812: PUSHJ P,STLNAC
4813: JRST WSCHED
TTYSER page# 0081 next prev
4815:
4816: PTWR1S: MOVEI CHR,1
4817: CAML CHR,TIFCTR(DDB)
4818: POPJ P,
4819: AOS (P)
4820: XCTR XLB,[LDB CHR,UUO]
4821: LDB UCHN,[POINT 2,CHR,28]
4822: PTLL3: LDB DSER,[POINT 7,CHR,35]
4823: CAIL DSER,"A"
4824: CAILE DSER,"Z"
4825: JRST .+2
4826: TRO DSER,40
4827: MOVEI AC2,
4828: PUSHJ P,STLNAC
4829: MOVE TAC,LINTAB(LINE)
4830: DPB LINE,[PUNITS⊗6,,TAC]
4831: CONO PI,SCNOFF
4832: PUSHJ P,PTYREC
4833: JRST TYPT1
4834:
4835: PTWR1W: TLNE LINE,IMLIN
4836: JRST IMWR1W
4837: IMWR10: PUSHJ P,PTWR1S
4838: SKIPA UCHN,DDB
4839: POPJ P,
4840: PUSHJ P,TTYGET
4841: HRROM DDB,PTYPTR(UCHN)
4842: PUSHJ P,PTWAIT
4843: JRST PTWR1W
4844:
4845: IMWR1W: XCTR XLB,[LDB CHR,UUO]
4846: CAIN CHR,211
4847: JRST IMWR11
4848: CAIE CHR,240
4849: JRST IMWR10
4850: MOVE CHR,[ASCID/ε↓/]
4851: CAIA
4852: IMWR11: MOVE CHR,[ASCID/ε}/]
4853: PUSHJ P,TTYFNU
4854: JRST FIVOUT
4855:
4856:
4857:
4858:
4859: PTRDS: XCTR XR,[MOVE UUO,(UUO)]
4860: TLZN UUO,7777
4861: HRLI UUO,440700
4862: TLO UUO,700
4863: IBP UUO
4864: PTRDSA: PUSHJ P,PTRD1W
4865: PTRDS2: IBP UUO
4866: PUSHJ P,PTRD1S
4867: POPJ P,
4868: JRST PTRDS2
4869:
4870: PTWRS7: TLCA UUO,444300
4871: PTWRS9: TLC UUO,445500
4872: HLR CHR,UUO
4873: XCTR XR,[MOVE UUO,(UUO)]
4874: TLZN UUO,7777
4875: HRL UUO,CHR
4876: DPB CHR,[POINT 12,UUO,17]
4877: PTWR2: XCTR XLB,[ILDB CHR,UUO]
4878: JUMPE CHR,STLNAC
4879: PUSHJ P,PTWR1W
4880: JRST PTWR2
4881:
TTYSER page# 0082 next prev
4883:
4884: PTJOBX: LDB TAC,PJOBN
4885: XCTR XR,[MOVE TAC1,(UUO)]
4886: TLNN TAC1,770000
4887: JRST PTJDIR
4888: MOVEI AC1,PTJLEN
4889: CAME TAC1,PTJTAB-1(AC1)
4890: SOJG AC1,.-1
4891: MOVE TAC1,AC1
4892: PTJDIR: JUMPLE TAC1,UUOERR
4893: CAILE TAC1,PTJLEN
4894: JRST UUOERR
4895: HRRZ TAC1,PTJDIS-1(TAC1)
4896: JRST (TAC1)
4897:
4898: DEFINE NAMES
4899: < C HALT,PTJHLT,0
4900: C CONT,PTJCON,0
4901: C DOFF,PTDOFF,0
4902: C DON,PTDON,0
4903: C LOGIN,PTLOGN,0
4904: C IWAITS,PTIWTS,0
4905: C CLRBFI,PTCLRB,0
4906: >
4907: DEFINE C(A,B,BITS)
4908: < XWD BITS,B
4909: >
4910: PTJDIS:
4911: XLIST
4912: NAMES
4913: LIST
4914: PTJLEN←←.-PTJDIS
4915: DEFINE C(A,B,BITS)
4916: < SIXBIT/A/
4917: >
4918: PTJTAB:
4919: XLIST
4920: NAMES
4921: LIST
TTYSER page# 0083 next prev
4923:
4924:
4925: PTJHLT: JUMPE TAC,CPOPJ
4926: PUSH P,J
4927: MOVE J,TAC
4928: CAMN J,STUSER
4929: JRST HLTOK0
4930: PUSHJ P,STOPCK
4931: CAIA
4932: JRST HLTOK
4933: NOTOK: POP P,J
4934: PUSHJ P,WSCHED
4935: JRST PTJHLT
4936: HLTOK0: SKIPN JBTADR(J)
4937: JRST HLTOK1
4938: PUSHJ P,ANYACT
4939: JRST NOTOK
4940: HLTOK1: PUSHJ P,ESTOP
4941: POP P,J
4942: JRST CPOPJ1
4943: HLTOK: PUSHJ P,STOP1
4944: POP P,J
4945: JRST CPOPJ1
4946:
4947:
4948:
4949: PTJCON: JUMPE TAC,CPOPJ
4950: PUSH P,J
4951: MOVE J,TAC
4952: MOVM TAC,JOBQUE(J)
4953: CAIE TAC,STOPQ
4954: JRST NOCONT
4955: MOVE TAC,JBTSTS(J)
4956: TLNE TAC,JERR
4957: JRST NOCONT
4958: MOVNI TAC,RUNQ
4959: MOVEM TAC,JOBQUE(J)
4960: PUSHJ P,SETRUN
4961: AOS -1(P)
4962: NOCONT: POP P,J
4963: JRST CPOPJ1
4964:
4965:
4966:
4967: PTIWTS: MOVE IOS,DEVIOS(DDB)
4968: TLNE IOS,TPMON
4969: JRST PTIWT1
4970: JUMPL IOS,CPOPJ1
4971: POPJ P,
4972:
4973: PTIWT1: LDB LINE,PUNIT
4974: MOVE TAC,TTYTAB(LINE)
4975: TLNN TAC,COMBIT!DLYBIT
4976: AOS (P)
4977: POPJ P,
4978:
4979:
4980: PTCLRB: JRST SETBFI
TTYSER page# 0084 next prev
4982:
4983:
4984:
4985: PTDON: MOVEI IOS,NOECHO
4986: ANDCAB IOS,DEVIOS(DDB)
4987: POPJ P,
4988:
4989: PTDOFF: MOVEI IOS,NOECHO
4990: ORB IOS,DEVIOS(DDB)
4991: POPJ P,
4992:
4993:
4994:
4995: PTLOGN: JUMPN TAC,PTLGN1
4996: HRLM J,(P)
4997: PUSHJ P,INIJOB
4998: JRST PTLGN0
4999: JRST PTLGN0
5000: PUSHJ P,FORKC
5001: MOVEI TAC,(J)
5002: AOSA (P)
5003: PTLGN0: MOVEI TAC,0
5004: PTLGN1: XCTR XW,[MOVEM TAC,(UUO)]
5005: POPJ P,
5006:
5007:
5008:
5009: IMLOAD: PUSHJ P,TTYFNU
5010: XCTR XR,[MOVE UUO,(UUO)]
5011: TLNN UUO,-1
5012: HRLI UUO,440700
5013: IMLOD0: MOVE CHR,[ASCID/0/]
5014: MOVE TAC,[POINT 7,CHR,6]
5015: IMLOD1: XCTR XLB,[ILDB AC3,UUO]
5016: JUMPE AC3,IMLOD2
5017: ADD CHR,[BYTE (7)1]
5018: IDPB AC3,TAC
5019: TLNE TAC,760000
5020: JRST IMLOD1
5021: PUSHJ P,FIVOUT
5022: JRST IMLOD0
5023: IMLOD2: CAME CHR,[ASCID/0/]
5024: PUSHJ P,FIVOUT
5025: MOVE CHR,[ASCID/¬/]
5026: JRST FIVOUT
TTYSER page# 0085 next prev
5028:
5029: IFE DILNUM,<DIAL:JRST UUOERR>
5030: IFN DILNUM,<
5031:
5032: DIL0TT←←11
5033:
5034:
5035: DILDS1←←4000
5036: DILDS0←←2000
5037: DILBSY←←1000
5038: DILOK←←400
5039: DILDSS←←200
5040: DILVMD←←100
5041: DILPWR←←40
5042:
5043:
5044: DILCLR←←40
5045: DILHUP←←20
5046: DILENB←←10
5047:
5048:
5049: DAREA←←4000
5050: DVOICE←←2000
5051:
5052:
5053: DILINI: CONO DIL,DILCLR!DILHUP!DILENB!DILCHN
5054: SETZM DILZBG
5055: MOVE TAC,[DILZBG,,DILZBG+1]
5056: BLT TAC,DILZND
5057: POPJ P,
5058:
5059: DILTRL: MOVSI AC1,-DILNUM
5060: DILTR1: HRRZ TAC,DILTTY(AC1)
5061: CAIE TAC,(LINE)
5062: AOBJN AC1,DILTR1
5063: JUMPGE AC1,CPOPJ
5064: PUSH P,LINE
5065: HRRZ LINE,AC1
5066: SKIPE DILJOB(LINE)
5067: PUSHJ P,RELDIL
5068: POP P,LINE
5069: POPJ P,
TTYSER page# 0086 next prev
5071:
5072:
5073:
5074:
5075:
5076:
5077:
5078:
5079:
5080:
5081: DILER0: JSP TAC,DILERR
5082: DILER1: JSP TAC,DILERR
5083: DILER2: JSP TAC,DILERR
5084: DILER3: JSP TAC,DILERR
5085: DILER4: JSP TAC,DILERR
5086:
5087: DILERR: SUBI TAC,DILER0+1
5088: HRRZ TAC,TAC
5089: DILSTT: XCTR XW,[MOVEM TAC,(UCHN)]
5090: POPJ P,
5091:
5092:
5093:
5094:
5095:
5096:
5097:
5098:
5099: ↑DIAL: XCTR XR,[HRRZ UUO,(UCHN)]
5100: XCTR XR,[HLRZ LINE,(UUO)]
5101: CAIL LINE,DILNUM
5102: JRST DILER0
5103: XCTR XR,[HRRZ DSER,(UUO)]
5104: CAIL DSER,MXDLCD
5105: JRST UUOERR
5106: CAME J,DILJOB(LINE)
5107: JUMPN DSER,DILER1
5108: JRST @DILDIS(DSER)
5109:
5110: DILDIS: DILGET
5111: DILSTA
5112: DILDIL
5113: DILHNG
5114: DILREL
5115: MXDLCD←←.-DILDIS
5116:
5117:
5118: DILGET: CAMN J,DILJOB(LINE)
5119: JRST CPOPJ1
5120: SKIPE DILJOB(LINE)
5121: JRST DILER1
5122: XCT DILOWN(LINE)
5123: JRST DILER2
5124: MOVEM J,DILJOB(LINE)
5125: JRST CPOPJ1
5126:
5127: DILTTY: 400000,,DIL0TT
5128:
5129: DILOWN: PUSHJ P,DIL0CK
5130:
5131: DIL0CK: MOVE DDB,DILTTY(LINE)
5132: SKIPN DDB,TTYTAB(DDB)
5133: POPJ P,
5134: LDB TAC,PJOBN
5135: CAME TAC,J
5136: POPJ P,
5137: MOVE TAC,DEVMOD(DDB)
5138: TRNE TAC,ASSPRG
5139: AOS (P)
5140: POPJ P,
5141:
5142:
5143: DILSTA: CONI DIL,TAC
5144: HRL TAC,DILCNI(LINE)
5145: AOS (P)
5146: JRST DILSTT
5147:
5148:
5149: DILDIL: CONSZ DIL,DILBSY
5150: JRST DILER3
5151: CONSZ DIL,DILPWR
5152: JRST DILER4
5153: XCTR XR,[MOVE TAC,2(UUO)]
5154: IFN 0,<
5155: TLNE TAC,DVOICE
5156: SKIPL DILTTY(LINE)
5157: JRST DILNM1
5158:
5159: DILNM1:
5160: >
5161: XCTR XR,[MOVE AC1,1(UUO)]
5162: ANDI AC1,777700
5163: CAIN AC1,4B21!1B25!5B29
5164: TLZ TAC,DAREA
5165: CONO PI,DILOFF
5166: CONO DIL,DILCLR!DILENB!DILCHN(AC1)
5167: DATAO DIL,TAC
5168: DILWAT: MOVNI TAC,IOWQ
5169: MOVEM TAC,JOBQUE(J)
5170: PUSHJ P,REQUE
5171: MOVE AC1,[JRST DILING]
5172: MOVEM AC1,DILIDS(LINE)
5173: SETZM DILCNI(LINE)
5174: CONO PI,DILON
5175: PUSHJ P,WSCHED
5176: CONO PI,DILOFF
5177: SKIPN TAC,DILCNI(LINE)
5178: JRST DILWAT
5179: CONO PI,DILON
5180: TRC TAC,DILDS1!DILOK!DILDSS
5181: TRCN TAC,DILDS1!DILOK!DILDSS
5182: TRNE TAC,DILDS0!DILPWR
5183: CAIA
5184: JRST DILSTAT
5185: CONO DIL,DILHUP!DILENB!DILCHN
5186: JRST DILER4
5187:
5188:
5189: DILHNG: CONO DIL,DILHUP!DILENB!DILCHN
5190: JRST DILSTAT
5191:
5192:
5193: DILREL: PUSHJ P,RELDIL
5194: JRST DILSTAT
5195:
5196: RELDIL: SETZM DILIDS(LINE)
5197: CONO DIL,DILHUP!DILENB!DILCHN
5198: SETZM DILJOB(LINE)
5199: POPJ P,
TTYSER page# 0087 next prev
5201:
5202: ↑DILINT:MOVEM LINE,DILLIN
5203: MOVEI LINE,0
5204: MOVEM TAC,DILTAC
5205: CONI DIL,TAC
5206: MOVEM TAC,DILCNI(LINE)
5207: SKIPE DILIDS(LINE)
5208: XCT DILIDS(LINE)
5209: DILXIT: CONSO DIL,DILBSY
5210: JRST DILXT1
5211: CONSO DIL,DILOK
5212: CONO DIL,DILHUP
5213: DILXT1: CONO DIL,DILCLR!DILENB!DILCHN
5214: MOVE TAC,DILTAC
5215: MOVE LINE,DILLIN
5216: JEN @DILCHL
5217:
5218: DILING: TRNE TAC,DILDS1
5219: TRNN TAC,DILDSS
5220: TDZA TAC,TAC
5221: MOVE TAC,[JRST DILACT]
5222: MOVEM TAC,DILIDS(LINE)
5223: MOVEM J,DILJ
5224: MOVE J,DILJOB(LINE)
5225: MOVM TAC,JOBQUE(J)
5226: CAIE TAC,IOWQ
5227: JRST DILIN1
5228: MOVNI TAC,RUNQ
5229: MOVEM TAC,JOBQUE(J)
5230: MOVEI TAC,QJOB(J)
5231: CONO PI,PIOFF
5232: SKIPE (TAC)
5233: JRST DILIN0
5234: EXCH TAC,QJOB
5235: HRROM TAC,@QJOB
5236: DILIN0: CONO PI,PION
5237: DILIN1: MOVE J,DILJ
5238: JRST DILXIT
5239:
5240: DILACT: TRNE TAC,DILOK
5241: TRNE TAC,DILDS0!DILPWR
5242: XCT DILERP(LINE)
5243: JRST DILXIT
5244:
5245: DILERP: JRST DILERT
5246:
5247: DILERT: MOVE TAC,DILTTY(LINE)
5248: SKIPN TAC,TTYTAB(TAC)
5249: JRST DILXIT
5250: MOVEM J,DILJ
5251: MOVSI J,IODERR
5252: IORM J,DEVIOS(TAC)
5253: MOVE J,DILJ
5254: JRST DILXIT
5255: >
EOF: TTYSER end-of-file. cnt=86